ElenaR1

SQL 2 EX

Feb 26th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.73 KB | None | 0 0
  1. union,intersect,except,ALL
  2. SELECT DISTINCT- nachin za mahane na povtoreniq, vrushtat se samo unikalnite redove
  3.  
  4. select speed from pc
  5. intersect
  6. select speed from laptop
  7.  
  8. 2zad
  9. USE ships
  10. SELECT distinct BATTLE
  11. from OUTCOMES
  12. where RESULT='SUNK'
  13.  
  14. 3zad
  15. SELECT * FROM OUTCOMES WHERE BATTLE='Guadalcanal'
  16. SELECT NAME,CLASS FROM SHIPS
  17. SELECT CLASS,NUMGUNS, DISPLACEMENT FROM CLASSES
  18.  
  19. SELECT *
  20. FROM CLASSES
  21.  JOIN SHIPS ON CLASSES.CLASS=SHIPS.CLASS
  22.  JOIN OUTCOMES ON SHIPS.NAME=OUTCOMES.SHIP
  23.  WHERE BATTLE='Guadalcanal'
  24.  
  25. TAKA E :
  26. SELECT SHIPS.NAME, CLASSES.NUMGUNS,CLASSES.DISPLACEMENT
  27. FROM CLASSES
  28.  JOIN SHIPS ON CLASSES.CLASS=SHIPS.CLASS
  29.  JOIN OUTCOMES ON SHIPS.NAME=OUTCOMES.SHIP
  30.  WHERE BATTLE='Guadalcanal'
  31.  
  32. po-kratko
  33. SELECT s.NAME, c.NUMGUNS,c.DISPLACEMENT
  34. FROM CLASSES AS c
  35.  JOIN SHIPS s ON c.CLASS=s.CLASS
  36.  JOIN OUTCOMES AS o ON s.NAME=o.SHIP
  37.  WHERE BATTLE='Guadalcanal'
  38.  
  39. //kato excel-ska tablica
  40.  SELECT *
  41.  FROM CLASSES AS c
  42.  FULL OUTER JOIN SHIPS s ON c.CLASS=s.CLASS
  43.  FULL JOIN OUTCOMES AS o ON s.NAME=o.SHIP
  44.  FULL JOIN BATTLES b ON b.NAME=o.BATTLE
  45.  ORDER BY s.NAME
  46.  
  47.  
  48.  SELECT *
  49.  FROM CLASSES c
  50.     JOIN SHIPS s ON c.CLASS=s.CLASS
  51.  ORDER BY c.CLASS
  52.  
  53. ex2.1
  54. USE movies
  55. select distinct starname
  56. from starsin
  57. join movie on movietitle = title
  58.     and movieyear = year
  59. where studioname = 'MGM' and movieyear = 1995;
  60.  
  61.  
  62. use pc;
  63.  
  64. -- Всички процесори,
  65. -- които се срещат както в
  66. -- PC-тата, така и в лаптопите.
  67. -- Първо да се изведат процесорите
  68. -- с най-висока честота:
  69. select speed
  70. from pc
  71. intersect--intersect kudeto takuv speed se sreshta i v 2te ;except- samo v 1oto i go nqma vuv 2roto union-vseki speed koito se sreshta i v dvete
  72. select speed
  73. from laptop
  74. order by speed desc;
  75. -- order by не е към втората заявка, а към целия резултат
  76.  
  77. -- пример за distinct:
  78. -- имената на всички битки, в които има потънал кораб:
  79. use ships;
  80. select distinct battle -- без distinct ще има повторения
  81. from outcomes
  82. where result = 'sunk';
  83.  
  84. use movies
  85. --vsichki filmi koito ne sa ot studio fox
  86. select *
  87. from movie, studio
  88. where STUDIONAME!='FOX' and  studioname = name
  89.  
  90. use movies;
  91. -- Съединение на таблици:
  92.  
  93. -- Нека искаме да изведем за всеки цветен филм заглавието му, годината,
  94. -- името на студиото и адреса на студиото.
  95. -- започваме отдалече:
  96. select * from movie; -- 10 реда
  97. select * from studio; -- 5 реда
  98. select * from movie, studio; -- 50 реда - декартово произведение
  99.  
  100. select *
  101. from movie, studio
  102. where studioname = name;
  103.  
  104. select title, year, studioname, address
  105. from movie, studio
  106. where studioname = name
  107.     and incolor = 'y';
  108.  
  109. -- горното е напълно вярно, но въпреки това има недостатъци, затова
  110. -- ще разгледаме друго решение:
  111. select title, year, studioname, address
  112. from movie
  113. join studio on studioname = name--vmesto da pishem from movie studio
  114. where incolor = 'y';
  115.  
  116.  
  117. -- 1.1.
  118. select name
  119. from starsin
  120. join moviestar on starname = name
  121. where gender = 'M'
  122.     and movietitle = 'Terms of Endearment';
  123.  
  124. --ili:
  125. select starname
  126. from STARSIN,MOVIESTAR
  127. where  GENDER='M' and MOVIETITLE='Terms of Endearment' and STARNAME=NAME
  128.  
  129. -- 1.2.
  130. select distinct starname
  131. from starsin
  132. join movie on movietitle = title
  133.     and movieyear = year
  134. where studioname = 'MGM' and movieyear = 1995;
  135.  
  136. --1.3?? koe e prezidenta
  137.  
  138. use ships
  139. -- съединение на повече от 2 таблици:
  140. -- 3.2.
  141. from outcomes
  142. join ships on ship = name
  143. join classes on ships.class = classes.class
  144. where battle = 'Guadalcanal';
  145.  
  146. use movies;
  147. -- 1.4. -- ще дадем сложно решение, следващия път - много по-разбираемо
  148. select m1.title
  149. from movie m1, movie m2 -- поне едно от срещанията на movie трябва да има ново име
  150.                         -- можеше и movie as m1, ...
  151. where m2.title = 'Star Wars'
  152.     and m1.length > m2.length;
  153.  
  154.  
  155. --2.1
  156. use pc
  157. select maker, speed
  158. from laptop,product
  159. where hd>=9
  160. --?
  161. select maker, price
  162. from laptop l
  163. join PRODUCT om l.model =product.model
  164. where hd>=9
  165.  
  166. use pc;
  167. -- 2.2.
  168. select p.model, price
  169. from product p
  170. join laptop on p.model = laptop.model
  171. where maker = 'B'
  172.  
  173. union
  174.  
  175. select p.model, price
  176. from product p
  177. join pc on p.model = pc.model
  178. where maker = 'B'
  179.  
  180. union
  181.  
  182. select p.model, price
  183. from product p
  184. join printer on p.model = printer.model
  185. where maker = 'B'
  186.  
  187. order by price desc;
  188.  
  189. -- 2.3.
  190. select distinct p1.hd
  191. from pc p1
  192. join pc p2 on p1.hd = p2.hd
  193.     and p1.code <> p2.code -- <> = != za da se sreshta v pone 2 komjutura qsqno 20m i
  194.     -- 40 se sreshtat samo v 1 pc sled kato ne se poqvqvat
  195.  
  196. -- 2.4.
  197. select distinct p1.model, p2.model
  198. from pc p1
  199. join pc p2 on p1.speed = p2.speed and p1.ram = p2.ram
  200. where p1.model < p2.model;
  201.  
  202.  
  203. --2.5???
  204. select distinct p1.model, p2.model
  205. from pc p1,pc p2
  206. join product on pc.model=product.model
  207.  
  208. use pc
  209. select product.maker
  210. from pc
  211.     join product on pc.model=product.model
  212.     where speed>1000
  213.  
  214.  
  215. --3.1
  216. use ships
  217. select s.name
  218. from ships s
  219. join classes c on s.class=c.class
  220. where c.displacement>4200
  221. ORDER BY s.CLASS
  222.  
  223.  
  224. --3.2
  225. use ships
  226. select ship,c.NUMGUNS,DISPLACEMENT
  227. from outcomes
  228. join ships s on s.name=outcomes.ship
  229. join CLASSES  c on s.class=c.class
  230. where battle='Guadalcanal'
  231.  
  232.  
  233. use ships;
  234. -- 3.3.
  235. -- грешно решение:
  236. select distinct country
  237. from classes
  238. where type = 'bb' and type = 'bc';
  239.  
  240. -- грешно решение:
  241. select distinct country
  242. from classes
  243. where type = 'bb' or type = 'bc';
  244. -- това е "...имат кораби от тип bb или от тип bc или от двата"
  245.  
  246. -- вярно решение:
  247. select country
  248. from classes
  249. where type = 'bb'
  250.  
  251. intersect
  252.  
  253. select country
  254. from classes
  255. where type = 'bc';
  256.  
  257. -- още едно вярно решение:
  258. select distinct c1.country
  259. from classes c1
  260. join classes c2 on c1.country = c2.country
  261. where c1.type = 'bb' and c2.type = 'bc';
  262.  
  263. -- 3.4.
  264. select distinct o1.ship,o1.BATTLE,o1.RESULT
  265. from outcomes o1
  266. join battles b1 on o1.battle = b1.name --purvite outcome-i, koito otgovarqt za 1ta bitka
  267. join outcomes o2 on o1.ship = o2.ship --tova e za da stava duma za 1 i sushti korab
  268. join battles b2 on o2.battle = b2.name --2rtie outcome-i koito otgovarqt za 2rata bitka
  269. where o1.result = 'damaged' and b1.date < b2.date;
  270.  
  271.  
  272. use movies
  273. select s.*
  274. from moviestar
  275. join starsin s on moviestar.name=s.starname
  276. where GENDER='M'
Add Comment
Please, Sign In to add comment