prestige

Lab4_BD

Apr 6th, 2012
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 8.38 KB | None | 0 0
  1. GO
  2. USE master
  3. GO
  4. IF EXISTS (SELECT * from sys.databases where name='mybase')
  5.         DROP DATABASE mybase
  6. GO
  7. CREATE DATABASE mybase
  8. GO
  9. ALTER DATABASE mybase SET SINGLE_USER
  10. GO
  11. USE mybase
  12. GO
  13. CREATE TABLE Street
  14. (StreetId int NOT NULL PRIMARY KEY,
  15. Name nvarchar(25) NOT NULL)
  16. GO
  17. INSERT INTO Street(StreetId,Name)
  18.                  VALUES (1,'Пушкинская')
  19. INSERT INTO Street(StreetId,Name)
  20.                  VALUES (2,'Лермонтовская')
  21. INSERT INTO Street(StreetId,Name)
  22.                  VALUES (3,'Чуковская')
  23. INSERT INTO Street(StreetId,Name)
  24.                  VALUES (4,'Толкиенская')
  25. GO
  26. --SELECT * FROM Street
  27. --GO
  28. CREATE TABLE Fam
  29. (FamId int NOT NULL PRIMARY KEY,
  30. Name nvarchar(25) NOT NULL)
  31. GO
  32. INSERT INTO Fam(FamId,Name)
  33.          VALUES (1,'Яблочных')
  34. INSERT INTO Fam(FamId,Name)
  35.          VALUES (2,'Апельсинов')
  36. INSERT INTO Fam(FamId,Name)
  37.          VALUES (3,'Виноградов')
  38. INSERT INTO Fam(FamId,Name)
  39.          VALUES (4,'Грушев')
  40. INSERT INTO Fam(FamId,Name)
  41.          VALUES (5,'Арбузова')
  42. GO
  43. --SELECT * FROM Fam
  44. --GO
  45. CREATE TABLE Subscriber
  46. (SubscriberId int NOT NULL Primary Key,
  47. PhoneNumber nvarchar(9) NOT NULL,
  48. FamId int NOT NULL,
  49. Iniz nvarchar(4) NOT NULL,
  50. Indeks nvarchar(5) NOT NULL,
  51. StreetId int NOT NULL,
  52. HouseNumber int NOT NULL,
  53. FlatNumber int NOT NULL,
  54. Sex nvarchar(1) NOT NULL,
  55. FOREIGN KEY (FamID) REFERENCES Fam(FamId),
  56. FOREIGN KEY (StreetId) REFERENCES Street(StreetId))
  57. GO
  58. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  59.          VALUES (1,'745-34-19',1, 'А.А.','61005',2, 13,3,'М')
  60. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  61.          VALUES (2,'234-43-53',2, 'Р.В', '61005', 1,1,45,'М')
  62. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  63.          VALUES (3,'654-02-51',3, 'В.И.','61005', 3,11,2,'Ж')
  64. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  65.          VALUES (4,'350-10-20',4, 'Ф.И.', '61005', 4, 7,223,'М')
  66. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  67.          VALUES (5,'787-34-66',1, 'А.С.', '61005', 3,13,89,'Ж')
  68. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  69.          VALUES (6,'787-37-56',2, 'А.С.', '61005', 2,112,13,'М')
  70. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  71.          VALUES (7,'777-34-66',2, 'К.В.', '61005', 1,2,13,'М')
  72. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  73.          VALUES (8,'787-34-12',4, 'М.С.', '61005', 2,112,13,'Ж')
  74. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  75.          VALUES (9,'497-234',4, 'К.М.', '61005', 4,132,13,'М')
  76. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  77.          VALUES (10,'497-234',5, 'К.М.', '61005', 4,132,13,'М')
  78. GO
  79. --SELECT *
  80. --FROM Subscriber
  81. --GO
  82.  
  83. CREATE TABLE SubscriberCopy
  84. (SubscriberId int NOT NULL Primary Key,
  85. PhoneNumber nvarchar(9) NOT NULL,
  86. FamId int NOT NULL,
  87. Iniz nvarchar(4) NOT NULL,
  88. Indeks nvarchar(5) NOT NULL,
  89. StreetId int NOT NULL,
  90. HouseNumber int NOT NULL,
  91. FlatNumber int NOT NULL,
  92. Sex nvarchar(1) NOT NULL,
  93. FOREIGN KEY (FamID) REFERENCES Fam(FamId),
  94. FOREIGN KEY (StreetId) REFERENCES Street(StreetId))
  95. GO
  96. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  97.          VALUES (1,'745-34-19',1, 'А.А.','61005',2, 13,3,'М')
  98. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  99.          VALUES (2,'234-43-53',2, 'Р.В', '61005', 1,1,45,'М')
  100. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  101.          VALUES (3,'654-02-51',3, 'В.И.','61005', 3,11,2,'Ж')
  102. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  103.          VALUES (4,'350-10-20',4, 'Ф.И.', '61005', 4, 7,223,'М')
  104. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  105.          VALUES (5,'787-34-66',1, 'А.С.', '61005', 3,13,89,'Ж')
  106. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  107.          VALUES (6,'787-37-56',2, 'А.С.', '61005', 2,112,13,'М')
  108. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  109.          VALUES (7,'777-34-66',2, 'К.В.', '61005', 1,2,13,'М')
  110. INSERT INTO SubscriberCopy(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  111.          VALUES (8,'787-34-12',4, 'М.С.', '61005', 2,112,13,'Ж')
  112. GO
  113. -------------3
  114. --IF OBJECT_ID('MyDelete1','TRIGGER') IS NOT NULL
  115. --DROP TRIGGER MyDelete1
  116. --GO
  117. --CREATE TRIGGER MyDelete1
  118. --ON Subscriber
  119. --FOR DELETE
  120. --AS
  121. --DECLARE @s nvarchar(9)
  122. --BEGIN
  123. --SELECT @s=PhoneNumber FROM deleted
  124. --declare @i int=0
  125. --declare @c int=0
  126. --WHILE @i<=9
  127. --begin
  128. --  if(substring(@s,@i,1) between '0' and '9' ) SET @c=@c+1
  129. --  SET @i=@i+1
  130. --end
  131. --IF(@c=6)
  132. --  PRINT('Успешно удалено')
  133. --ELSE
  134. --   BEGIN
  135. --  PRINT('Неверное удаление')
  136. --  ROLLBACK TRANSACTION
  137. --   END
  138. --END
  139. --GO
  140. --DELETE Subscriber
  141. --WHERE LEN(PhoneNumber)=7
  142. --GO
  143. --SELECT *
  144. --FROM Subscriber
  145. --GO
  146.  
  147.  
  148.  
  149. --declare @i int=0
  150. --declare @c int=0
  151. --WHILE @i<=9
  152. --begin
  153. --  if(substring(@s,@i,1) between '0' and '9' ) SET @c=@c+1
  154. --  SET @i=@i+1
  155. --end
  156.  
  157. --------------4
  158. --IF OBJECT_ID('MyInsert1','TRIGGER') IS NOT NULL
  159. --DROP TRIGGER MyInsert1
  160. --GO
  161. --CREATE TRIGGER MyInsert1
  162. --ON Fam
  163. --INSTEAD OF INSERT
  164. --AS
  165. --DECLARE @s nvarchar(25)
  166. --IF NOT EXISTS(SELECT * FROM Inserted
  167. --WHERE Name IN
  168. --(SELECT Name FROM Fam))
  169. --BEGIN
  170. --  INSERT INTO Fam(Name) SELECT
  171. --  Name FROM Inserted
  172. --  print('Subject added')
  173. --END
  174. --ELSE
  175. --  PRINT('Unable to add')
  176. --GO
  177. --INSERT INTO Fam(FamId,Name)
  178. --         VALUES (6,'Яблочных')
  179. --SELECT * FROM Fam
  180. -------------------5
  181. --IF OBJECT_ID('MyDelete2','TRIGGER') IS NOT NULL
  182. --DROP TRIGGER MyDelete2
  183. --GO
  184. --CREATE TRIGGER MyDelete2
  185. --ON Fam
  186. --INSTEAD OF DELETE
  187. --AS
  188. --  DELETE FROM Subscriber WHERE Subscriber.FamId IN (SELECT FamId FROM deleted)
  189. --  DELETE FROM Fam WHERE FamId IN(SELECT FamId FROM deleted)
  190. --GO
  191. --DELETE FROM Fam
  192. --WHERE Name='Арбузова'
  193. --GO
  194. -------------1
  195. --UPDATE TOP(1) SubscriberCopy
  196. --SET HouseNumber=3
  197. --WHERE SubscriberId=3
  198. --GO
  199. -----------2
  200. --SELECT SubscriberId, PhoneNumber, Fam.Name, Iniz,Indeks,Street.Name, HouseNumber, FlatNumber, Sex
  201. --FROM Subscriber,Fam,Street
  202. --WHERE Subscriber.FamId=Fam.FamId and Subscriber.StreetId=Street.StreetId and Fam.Name NOT IN
  203. --(SELECT Fam.Name FROM Fam WHERE Fam.Name like '[АЕЁИОУЭЮЯ]%')
  204. ----(SELECT Fam.Name FROM Fam WHERE Fam.Name LIKE('А%') or Fam.Name LIKE ('О%')  or Fam.Name like('И%') or Fam.Name like('Е%') or Fam.Name like('У%') or Fam.Name like('Э%') or Fam.Name like('Я%'))
  205. --UNION SELECT SubscriberId, PhoneNumber, Fam.Name, Iniz,Indeks,Street.Name, HouseNumber, FlatNumber, Sex
  206. --FROM SubscriberCopy,Fam,Street
  207. --WHERE SubscriberCopy.FamId=Fam.FamId and SubscriberCopy.StreetId=Street.StreetId and Fam.Name NOT IN
  208. ----SELECT Fam.Name FROM Fam WHERE Fam.Name LIKE('А%') or Fam.Name LIKE ('О%')  or Fam.Name like('И%') or Fam.Name like('Е%') or Fam.Name like('У%') or Fam.Name like('Э%') or Fam.Name like('Я%'))
  209. --(SELECT Fam.Name FROM Fam WHERE Fam.Name like '[АЕЁИОУЭЮЯ]%')
  210. --ORDER BY Street.Name
  211. --GO
  212. ----------------------6
  213. --IF OBJECT_ID('UpdeteInsert','TRIGGER') IS NOT NULL
  214. --DROP TRIGGER UpdateInsert
  215. --GO
  216. --CREATE TRIGGER UpdateInsert
  217. --ON Subscriber
  218. --INSTEAD OF UPDATE,INSERT
  219. --AS
  220. --  if not exist(select * from inserted
  221. --  where StreetId in
  222. --  (select * from Subscriber group by StreetId having count(*)>=3))
  223. --      print('Unable to add')
  224. --  else
  225. --      begin
  226. --          insert into Subscriber SELECT
  227. --          * FROM inserted
  228. --          print('Added')
  229. --      end
  230. --GO
  231.  
  232. --SELECT *
  233. --FROM SubscriberCopy
  234. --GO
Advertisement
Add Comment
Please, Sign In to add comment