Advertisement
fevzi02

SQl 4lab

Jun 13th, 2022
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.43 KB | None | 0 0
  1. =========
  2. 1 часть
  3. =========
  4. 1)----------------------------------
  5. - - - - - - - - - - - - - - - - - - -
  6.  
  7. 2)---------------------------------
  8. CREATE DATABASE Parts_and_suppliers;
  9.  
  10. 3)---------------------------------
  11. SHOW DATABASES;
  12. USE Parts_and_suppliers;
  13.  
  14. 4)---------------------------------
  15. CREATE TABLE S
  16. (П CHAR(5) not null,
  17. ИМЯ CHAR(20),
  18. СТАТУС NUMERIC,
  19. ГОРОД CHAR (20),
  20. PRIMARY KEY (П));
  21.  
  22. 5)---------------------------------
  23. SHOW TABLES;
  24.  
  25. 6)---------------------------------
  26. CREATE TABLE P
  27. (Д CHAR(5) not null,
  28. НАЗВАНИЕ CHAR(20),
  29. ЦВЕТ CHAR(20),
  30. ВЕС NUMERIC,
  31. ГОРОД CHAR (20),
  32. PRIMARY KEY (Д));
  33.  
  34. CREATE TABLE SP
  35. (П CHAR(5) not null,
  36. Д CHAR(5) not null,
  37. КОЛИЧЕСТВО NUMERIC,
  38. PRIMARY KEY (Д, П));
  39.  
  40. 7)---------------------------------
  41. INSERT INTO S (П, ИМЯ, СТАТУС, ГОРОД) VALUES
  42. ('S1', 'Вениамин','20', 'Москва'),
  43. ('S2', 'Алексей', 10, 'Киев'),
  44. ('S3', 'Федор', 30, 'Киев'),
  45. ('S4', 'Игорь', 20, 'Москва'),
  46. ('S5', 'Вадим', 30, 'Минск');
  47.  
  48. INSERT INTO P (Д, Название, Цвет, Вес, Город) VALUES
  49. ('P1', 'Гайка', 'Красный', 12, 'Москва'),
  50. ('P2', 'Болт', 'Черный', 17, 'Киев'),
  51. ('P3', 'Винт', 'Голубой', 17, 'Ростов'),
  52. ('P4', 'Винт', 'Красный', 14, 'Москва'),
  53. ('P5', 'Шпилька', 'Голубой', 12, 'Киев'),
  54. ('P6', 'Палец', 'Красный', 19, 'Москва');
  55.  
  56. INSERT INTO SP (П, Д, Количество) VALUES
  57. ('S1', 'P1', 300),
  58. ('S2', 'P1', 300),
  59. ('S1', 'P2', 200),
  60. ('S2', 'P2', 400),
  61. ('S3', 'P2', 200),
  62. ('S4', 'P2', 200),
  63. ('S1', 'P3', 400),
  64. ('S1', 'P4', 200),
  65. ('S4', 'P4', 300),
  66. ('S1', 'P5', 100),
  67. ('S4', 'P5', 400),
  68. ('S1', 'P6', 100);
  69.  
  70. 8)---------------------------------
  71. SELECT p.Цвет, p.Город
  72. FROM p
  73. WHERE (((p.Город)<>"Киев")
  74. And ((p.Вес)>10));
  75.  
  76. 9)---------------------------------
  77. SELECT DISTINCT p.Цвет, p.Город
  78. FROM p
  79. WHERE (((p.Город)<>"Киев")
  80. And ((p.Вес)>10));
  81.  
  82. 10, 11)---------------------------------
  83. SELECT P.Д, P.ВЕС/1000 AS КГ
  84. FROM P;
  85.  
  86. 12)---------------------------------
  87. SELECT *
  88. FROM S;
  89.  
  90. 13, 14)---------------------------------
  91. SELECT S.п, S.имя, S.статус, S.город, P.Д, P.город
  92. FROM S, P
  93. WHERE S.город=P.город;
  94.  
  95. 15, 16)---------------------------------
  96. SELECT first.П AS ПA, second.П AS ПB, second.Город
  97. FROM s AS first, s AS second
  98. WHERE (((first.П)<second.П)
  99. AND ((first.Город)=second.город));
  100.  
  101. 17, 18)---------------------------------
  102. SELECT COUNT(*) AS N
  103. FROM S;
  104.  
  105. 19, 20)---------------------------------
  106. SELECT MAX(SP.КОЛИЧЕСТВО) AS MAXQ, MIN(SP.КОЛИЧЕСТВО) AS
  107. MINQ
  108. FROM SP
  109. WHERE SP.Д='P2';
  110.  
  111. 21, 22)---------------------------------
  112. SELECT SP.Д, SUM(SP.КОЛИЧЕСТВО) AS ОБЩЕЕ_КОЛИЧЕСТВО
  113. FROM SP
  114. GROUP BY SP.Д;
  115.  
  116. или
  117.  
  118. SELECT P.Д, (SELECT SUM (SP.КОЛИЧЕСТВО)
  119. FROM SP
  120. WHERE SP.Д = P.Д) AS ОБЩЕЕ_КОЛИЧЕСТВО
  121. FROM P;
  122. (не работает)
  123.  
  124. 23, 24)---------------------------------
  125. SELECT S.П
  126. FROM S
  127. WHERE S.СТАТУС < ( SELECT MAX (S.СТАТУС)
  128. FROM S);
  129.  
  130. 25, 26)---------------------------------
  131. SELECT DISTINCT S.ИМЯ
  132. FROM S
  133. WHERE EXISTS (SELECT *
  134. FROM SP
  135. WHERE SP.П = S.П AND SP.Д = 'P2');
  136.  
  137. 27, 28)---------------------------------
  138. SELECT DISTINCT S.ИМЯ
  139. FROM S
  140. WHERE NOT EXISTS
  141. (SELECT *
  142. FROM SP
  143. WHERE SP.П = S.П
  144. AND SP.Д = 'P2');
  145.  
  146. 29, 30)---------------------------------
  147. SELECT DISTINCT S.ИМЯ
  148. FROM S
  149. WHERE NOT EXISTS
  150. (SELECT *
  151. FROM P
  152. WHERE NOT EXISTS
  153. (SELECT *
  154. FROM SP
  155. WHERE SP.П =S.П AND SP.Д =P.Д));
  156.  
  157. или
  158.  
  159. SELECT DISTINCT S.ИМЯ
  160. FROM S
  161. WHERE
  162. (SELECT COUNT (SP.П)
  163. FROM SP
  164. WHERE SP.П=S.П) = (SELECT COUNT (P.Д) FROM P);
  165. (не работает)
  166.  
  167. 31, 32)---------------------------------
  168. SELECT P.Д
  169. FROM P
  170. WHERE P.ВЕС >16
  171. UNION
  172. SELECT SP.Д
  173. FROM SP
  174. WHERE SP.П='S2';
  175.  
  176. 33)---------------------------------
  177.  
  178. ========
  179. 2 часть
  180. ========
  181. CREATE TABLE J
  182. (J CHAR(5) not null,
  183. ИМЯ CHAR(5) ,
  184. ГОРОД CHAR (20),
  185. PRIMARY KEY (J));
  186.  
  187. CREATE TABLE SPJ
  188. (П CHAR(5) not null,
  189. Д CHAR(5) not null,
  190. J CHAR(5) not null,
  191. Количество int not null,
  192. PRIMARY KEY (П, Д, J));
  193.  
  194. INSERT INTO J (J, Имя, Город) VALUES
  195. ('J1', 'Л1', 'Москва'),
  196. ('J2', 'Л2', 'Киев'),
  197. ('J3', 'Л3', 'Москва'),
  198. ('J4', 'К2', 'Ростов'),
  199. ('J5', 'К3', 'Киев'),
  200. ('J6', 'Ф1', 'Ростов'),
  201. ('J7', 'Ф2', 'Москва');
  202.  
  203. INSERT INTO SPJ (П, Д, J, Количество) VALUES
  204. ('S1', 'P1', 'J1', 200),
  205. ('S1', 'P1', 'J4', 100),
  206. ('S2', 'P3', 'J1', 400),
  207. ('S2', 'P3', 'J2', 200),
  208. ('S2', 'P3', 'J4', 500),
  209. ('S2', 'P3', 'J5', 600),
  210. ('S2', 'P3', 'J6', 400),
  211. ('S2', 'P3', 'J7', 800),
  212. ('S2', 'P5', 'J2', 100),
  213. ('S3', 'P3', 'J1', 200),
  214. ('S3', 'P4', 'J2', 500),
  215. ('S4', 'P4', 'J3', 300),
  216. ('S4', 'P6', 'J7', 300),
  217. ('S5', 'P1', 'J4', 100),
  218. ('S5', 'P2', 'J2', 200),
  219. ('S5', 'P2', 'J4', 100),
  220. ('S5', 'P3', 'J4', 200),
  221. ('S5', 'P4', 'J4', 800),
  222. ('S5', 'P5', 'J4', 400),
  223. ('S5', 'P5', 'J5', 500),
  224. ('S5', 'P5', 'J7', 100),
  225. ('S5', 'P6', 'J2', 200),
  226. ('S5', 'P6', 'J4', 500);
  227.  
  228.  
  229. №№№№№№№№№№№№№№№№№№№№№№№№№№№№
  230. для связки таблицы
  231.  
  232. ALTER TABLE `sp` ADD FOREIGN KEY (`П`) REFERENCES `p`(`П`) ON DELETE RESTRICT ON UPDATE RESTRICT;
  233. ALTER TABLE `sp` ADD FOREIGN KEY (`Д`) REFERENCES `p`(`Д`) ON DELETE RESTRICT ON UPDATE RESTRICT;
  234.  
  235. ALTER TABLE `spj` ADD FOREIGN KEY (`П`) REFERENCES `s`(`П`) ON DELETE RESTRICT ON UPDATE RESTRICT;
  236. ALTER TABLE `spj` ADD FOREIGN KEY (`Д`) REFERENCES `p`(`Д`) ON DELETE RESTRICT ON UPDATE RESTRICT;
  237. ALTER TABLE `spj` ADD FOREIGN KEY (`J`) REFERENCES `j`(`J`) ON DELETE RESTRICT ON UPDATE RESTRICT;
  238.  
  239.  
  240. ==========
  241. Вариант 2
  242. ==========
  243.  
  244. 1)Получите полную информацию о всех проектах в Москве.
  245. ____________________________________________________
  246. SELECT * FROM J
  247. WHERE J.Город = "Москва"
  248.  
  249.  
  250. ------------------------------------------------------------------
  251.  
  252. Пример_9: Получить все пары номеров поставщиков, таких, что оба
  253. поставщика в каждой паре размещаются в одном и том же городе:
  254. SELECT first.П AS ПA, second.П AS ПB, second.Город
  255. FROM s AS first, s AS second
  256. WHERE (((first.П)<second.П)
  257. AND ((first.Город)=second.город));
  258.  
  259. 2)Получите все такие тройки «номера поставщиков – номера деталей – номера проектов»,
  260. для которых никакие из двух
  261. выводимых поставщиков, деталей и проектов не размещены в одном
  262. городе.
  263. ____________________________________________________ 261, spj AS third
  264. SELECT first.П AS ПA, first.Д AS ДА, first.J AS JА, second.П AS ПB, second.Д AS ДB, second.J AS JB
  265. FROM spj AS first, spj AS second
  266. JOIN s
  267. JOIN p
  268. JOIN j
  269. WHERE (((first.П)<second.П)
  270. AND ((first.Д)<second.Д)
  271. AND ((first.J)<second.J)
  272. AND ((first.Город)=second.город)
  273. AND ((first.Город)=second.город))
  274. AND ()
  275. AND ());
  276.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement