prestige

Lab_3_BD

Apr 6th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. GO
  2. USE master
  3. GO
  4.  
  5. IF EXISTS (SELECT * from sys.databases where name='mybase')
  6. DROP DATABASE mybase
  7. GO
  8. CREATE DATABASE mybase
  9. GO
  10.  
  11. ALTER DATABASE mybase SET SINGLE_USER
  12. GO
  13.  
  14. USE mybase
  15. GO
  16. CREATE TABLE Street
  17. (StreetId int NOT NULL PRIMARY KEY,
  18. Name nvarchar(25) NOT NULL)
  19. GO
  20. INSERT INTO Street(StreetId,Name)
  21. VALUES (1,'Пушкинская')
  22. INSERT INTO Street(StreetId,Name)
  23. VALUES (2,'Лермонтовская')
  24. INSERT INTO Street(StreetId,Name)
  25. VALUES (3,'Чуковская')
  26. INSERT INTO Street(StreetId,Name)
  27. VALUES (4,'Толкиенская')
  28. GO
  29. --SELECT * FROM Street
  30. --GO
  31. CREATE TABLE Fam
  32. (FamId int NOT NULL PRIMARY KEY,
  33. Name nvarchar(25) NOT NULL)
  34. GO
  35. INSERT INTO Fam(FamId,Name)
  36. VALUES (1,'Яблочных')
  37. INSERT INTO Fam(FamId,Name)
  38. VALUES (2,'Апельсинов')
  39. INSERT INTO Fam(FamId,Name)
  40. VALUES (3,'Виноградов')
  41. INSERT INTO Fam(FamId,Name)
  42. VALUES (4,'Грушев')
  43. GO
  44. --SELECT * FROM Fam
  45. --GO
  46. CREATE TABLE Subscriber
  47. (SubscriberId int NOT NULL Primary Key,
  48. PhoneNumber nvarchar(9) NOT NULL,
  49. FamId int NOT NULL,
  50. Iniz nvarchar(4) NOT NULL,
  51. Indeks nvarchar(5) NOT NULL,
  52. StreetId int NOT NULL,
  53. HouseNumber int NOT NULL,
  54. FlatNumber int NOT NULL,
  55. Sex nvarchar(1) NOT NULL,
  56. FOREIGN KEY (FamID) REFERENCES Fam(FamId),
  57. FOREIGN KEY (StreetId) REFERENCES Street(StreetId))
  58. GO
  59. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  60. VALUES (1,'745-34-19',1, 'А.А.','61005',2, 13,3,'М')
  61. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  62. VALUES (2,'234-43-53',2, 'Р.В', '61005', 1,1,45,'М')
  63. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  64. VALUES (3,'654-02-51',3, 'В.И.','61005', 3,11,2,'Ж')
  65. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  66. VALUES (4,'350-10-20',4, 'Ф.И.', '61005', 4, 7,223,'М')
  67. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  68. VALUES (5,'787-34-66',1, 'А.С.', '61005', 3,13,89,'Ж')
  69. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  70. VALUES (6,'787-37-56',2, 'А.С.', '61005', 2,112,13,'М')
  71. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  72. VALUES (7,'777-34-66',2, 'К.В.', '61005', 1,2,13,'М')
  73. INSERT INTO Subscriber(SubscriberId, PhoneNumber, FamId, Iniz,Indeks,StreetId, HouseNumber, FlatNumber, Sex)
  74. VALUES (8,'787-34-12',4, 'М.С.', '61005', 2,112,13,'Ж')
  75.  
  76. GO
  77. SELECT *
  78. FROM Subscriber
  79. GO
  80. ---------1
  81. --SELECT *
  82. --FROM Subscriber
  83. --WHERE StreetId IN
  84. --(SELECT StreetId
  85. --FROM Street
  86. --WHERE Name='Пушкинская')
  87. --GO
  88. ---------2
  89. --SELECT Name FROM Fam
  90. --WHERE Fam.FamId in
  91. --(SELECT Subscriber.FamId FROM Subscriber
  92. --WHERE (Subscriber.HouseNumber = 1 and Subscriber.FamId in
  93. --(SELECT Subscriber.FamId FROM Subscriber WHERE Subscriber.HouseNumber = 2)))
  94. --GO
  95. ---------3
  96. --SELECT SubscriberId, PhoneNumber, Fam.Name, Iniz,Indeks,Street.Name, HouseNumber, FlatNumber, Sex
  97. --FROM Subscriber,Fam,Street
  98. --WHERE Subscriber.FamId=Fam.FamId and Subscriber.StreetId=Street.StreetId
  99. --GO
  100. -------4
  101. --SELECT SubscriberId, PhoneNumber, Iniz,Indeks, HouseNumber, FlatNumber, Sex, Street.Name, Fam.Name
  102. --FROM Subscriber
  103. --INNER JOIN Street
  104. --ON Subscriber.StreetId=Street.StreetId
  105. --INNER JOIN Fam
  106. --ON Subscriber.FamId=Fam.FamId
  107. --WHERE PhoneNumber NOT IN(SELECT PhoneNumber FROM Subscriber WHERE PhoneNumber LIKE '7%')
  108. --ORDER BY Fam.Name
  109. --GO
  110. -------5
  111. --SELECT SubscriberId, PhoneNumber, Iniz,Indeks, HouseNumber, FlatNumber, Sex, Street.Name, Fam.Name
  112. --FROM Subscriber
  113. --INNER JOIN Street
  114. --ON Subscriber.StreetId=Street.StreetId
  115. --INNER JOIN Fam
  116. --ON Subscriber.FamId=Fam.FamId
  117. --GO
  118. ---------6
  119. --SELECT MIN(FlatNumber),Subscriber.StreetId
  120. --FROM Subscriber
  121. --WHERE Subscriber.Sex='Ж'
  122. --GROUP BY StreetId
  123. --GO
  124. ---------7
  125. --SELECT Name
  126. --FROM Fam
  127. --WHERE FamId=
  128. --(SELECT FamId
  129. --FROM Subscriber
  130. --WHERE Subscriber.HouseNumber=13
  131. --GROUP BY FamId
  132. --HAVING COUNT(FamId)>2)
  133. --GO
  134. --------8
  135. --SELECT Name
  136. --FROM Street
  137. --WHERE StreetId=
  138. --(SELECT TOP 1 StreetId --, COUNT(phonenumber) as 'colnumber'
  139. --FROM Subscriber
  140. --WHERE PhoneNumber like ('7%')
  141. --GROUP BY Subscriber.StreetId
  142. --ORDER BY COUNT(PhoneNumber) desc)
  143. --GO
  144. --------9
  145. --DECLARE @a int
  146. --SELECT @a=Count(PhoneNumber)
  147. --FROM Subscriber
  148. --WHERE (StreetId=1 and PhoneNumber IN
  149. --(SELECT PhoneNumber
  150. --FROM Subscriber
  151. --WHERE PhoneNumber LIKE '777%'))
  152. --IF @a>0 PRINT('True')
  153. --ELSE PRINT ('False')
  154. --GO
Advertisement
Add Comment
Please, Sign In to add comment