Advertisement
FR4GG13

[Bazy danych] 11.01

Jan 11th, 2018
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [NOTATKI]
  2. Tworzenie tabeli
  3. Insert into wprowadzenie danych
  4. Selectem pokazać tych co mają pesel null np
  5. Utwórz kopie np jako wynik select
  6. (na podstawie kryteriów)
  7. Join w każdej postaci
  8. Plus złączenia zwykłe, bez join. Uzyskać dane z 2 tabel np
  9. Funkcje average min max count
  10. Zapytania typu (głównie)from, where
  11. Np. "ile było zamówień płaskowników"
  12. jak masz towar-id to trzeba `towar-id`
  13. Różnice w joinach, null zamiast nazwy to wartość
  14. Group by
  15.  
  16.  
  17. [KOD]
  18.  
  19. student@linux:~> mysql -u stud1
  20. ERROR 1045 (28000): Access denied for user 'stud1'@'localhost' (using password: NO)
  21. student@linux:~> mysql -u stud1 -p
  22. Enter password:
  23. Welcome to the MariaDB monitor.  Commands end with ; or \g.
  24. Your MariaDB connection id is 5
  25. Server version: 10.0.31-MariaDB SLE 12 SP1 package
  26.  
  27. Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
  28.  
  29. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  30.  
  31. MariaDB [(none)]> use hw1
  32. Reading table information for completion of table and column names
  33. You can turn off this feature to get a quicker startup with -A
  34.  
  35. Database changed
  36. MariaDB [hw1]> show tables
  37.     -> ;
  38. +---------------+
  39. | Tables_in_hw1 |
  40. +---------------+
  41. | Miasta        |
  42. | Osoby         |
  43. | UczelniaA     |
  44. | UczelniaB     |
  45. | klienci       |
  46. | pracownicy    |
  47. | pracownicyN   |
  48. | stanowiskaN   |
  49. | towary        |
  50. | zamowienia    |
  51. +---------------+
  52. 10 rows in set (0.00 sec)
  53.  
  54. MariaDB [hw1]> select * from zamowienia;
  55. +----+-----------+----------+------------+---------+
  56. | id | klient-id | towar-id | data       | wartosc |
  57. +----+-----------+----------+------------+---------+
  58. |  1 |         1 |        2 | 2012-01-01 |   12.44 |
  59. |  2 |         1 |        4 | 2012-01-01 |   10.22 |
  60. |  3 |         1 |        2 | 2012-02-12 |   15.88 |
  61. |  4 |         2 |        1 | 2012-01-01 |   22.35 |
  62. |  5 |         2 |        1 | 2012-02-12 |   28.00 |
  63. |  6 |         2 |        4 | 2012-03-01 |    2.28 |
  64. |  7 |         3 |        1 | 2012-02-11 |   18.48 |
  65. |  8 |         3 |        4 | 2012-01-01 |   12.44 |
  66. |  9 |         4 |        1 | 2012-03-11 |   15.26 |
  67. | 10 |         5 |        4 | 2012-03-02 |    6.11 |
  68. +----+-----------+----------+------------+---------+
  69. 10 rows in set (0.00 sec)
  70.  
  71. MariaDB [hw1]> select * from zamowienia where wartosc>avg(wartosc);
  72. ERROR 1111 (HY000): Invalid use of group function
  73. MariaDB [hw1]> select * from zamowienia where wartosc> select avg(wartosc) from zamowienia);                  
  74. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'select avg(wartosc) from zamowienia)' at line 1
  75. MariaDB [hw1]> select * from zamowienia where wartosc> (select avg(wartosc) from zamowienia);
  76. +----+-----------+----------+------------+---------+
  77. | id | klient-id | towar-id | data       | wartosc |
  78. +----+-----------+----------+------------+---------+
  79. |  3 |         1 |        2 | 2012-02-12 |   15.88 |
  80. |  4 |         2 |        1 | 2012-01-01 |   22.35 |
  81. |  5 |         2 |        1 | 2012-02-12 |   28.00 |
  82. |  7 |         3 |        1 | 2012-02-11 |   18.48 |
  83. |  9 |         4 |        1 | 2012-03-11 |   15.26 |
  84. +----+-----------+----------+------------+---------+
  85. 5 rows in set (0.01 sec)
  86.  
  87. MariaDB [hw1]> select * from zamowienia;
  88. +----+-----------+----------+------------+---------+
  89. | id | klient-id | towar-id | data       | wartosc |
  90. +----+-----------+----------+------------+---------+
  91. |  1 |         1 |        2 | 2012-01-01 |   12.44 |
  92. |  2 |         1 |        4 | 2012-01-01 |   10.22 |
  93. |  3 |         1 |        2 | 2012-02-12 |   15.88 |
  94. |  4 |         2 |        1 | 2012-01-01 |   22.35 |
  95. |  5 |         2 |        1 | 2012-02-12 |   28.00 |
  96. |  6 |         2 |        4 | 2012-03-01 |    2.28 |
  97. |  7 |         3 |        1 | 2012-02-11 |   18.48 |
  98. |  8 |         3 |        4 | 2012-01-01 |   12.44 |
  99. |  9 |         4 |        1 | 2012-03-11 |   15.26 |
  100. | 10 |         5 |        4 | 2012-03-02 |    6.11 |
  101. +----+-----------+----------+------------+---------+
  102. 10 rows in set (0.00 sec)
  103.  
  104. MariaDB [hw1]> select * from klienci;  
  105. +----+-----------+------------+
  106. | id | imie      | nazwisko   |
  107. +----+-----------+------------+
  108. |  1 | Jan       | Kowalski   |
  109. |  2 | Andrzej   | Nowak      |
  110. |  3 | Janusz    | Malinowski |
  111. |  4 | Adam      | Kowalski   |
  112. |  5 | Krzysztof | Nowicki    |
  113. +----+-----------+------------+
  114. 5 rows in set (0.01 sec)
  115.  
  116. MariaDB [hw1]> select * from towary;
  117. +----+--------------+-------+-------+
  118. | id | nazwa        | grupa | cena  |
  119. +----+--------------+-------+-------+
  120. |  1 | Śruby        |     1 |  2.00 |
  121. |  2 | Nakrętki     |     1 |  3.00 |
  122. |  3 | Kątowniki    |     2 |  8.00 |
  123. |  4 | Płaskowniki  |     2 |  9.00 |
  124. |  5 | Gwoździe     |     1 |  1.00 |
  125. |  6 | Panele       |     3 | 15.00 |
  126. |  7 | Wkręty       |     1 |  4.00 |
  127. |  8 | Deski        |     3 | 12.00 |
  128. |  9 | Płyty        |     3 | 19.00 |
  129. +----+--------------+-------+-------+
  130. 9 rows in set (0.00 sec)
  131.  
  132. MariaDB [hw1]>
  133. MariaDB [hw1]>
  134. MariaDB [hw1]>                                                                                                                      
  135. MariaDB [hw1]>                                                                                                                      
  136. MariaDB [hw1]> select * from zamowienia join towary AS (select * from towary join klienci AS wartosc > (select avg(wartosc) from zamowienia));
  137. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(select * from towary join klienci AS wartosc > (select avg(wartosc) from zamowi' at line 1                
  138. MariaDB [hw1]> select * from zamowienia, towary, klienci where wartosc > (select avg(wartosc) from zamowienia) AND `towar-id` = towary.id AND `klient-id` = klienci.id;
  139. +----+-----------+----------+------------+---------+----+-----------+-------+------+----+---------+------------+
  140. | id | klient-id | towar-id | data       | wartosc | id | nazwa     | grupa | cena | id | imie    | nazwisko   |
  141. +----+-----------+----------+------------+---------+----+-----------+-------+------+----+---------+------------+
  142. |  3 |         1 |        2 | 2012-02-12 |   15.88 |  2 | Nakrętki  |     1 | 3.00 |  1 | Jan     | Kowalski   |
  143. |  4 |         2 |        1 | 2012-01-01 |   22.35 |  1 | Śruby     |     1 | 2.00 |  2 | Andrzej | Nowak      |
  144. |  5 |         2 |        1 | 2012-02-12 |   28.00 |  1 | Śruby     |     1 | 2.00 |  2 | Andrzej | Nowak      |
  145. |  7 |         3 |        1 | 2012-02-11 |   18.48 |  1 | Śruby     |     1 | 2.00 |  3 | Janusz  | Malinowski |
  146. |  9 |         4 |        1 | 2012-03-11 |   15.26 |  1 | Śruby     |     1 | 2.00 |  4 | Adam    | Kowalski   |
  147. +----+-----------+----------+------------+---------+----+-----------+-------+------+----+---------+------------+
  148. 5 rows in set (0.00 sec)                                                                    
  149.                                                                                              
  150. MariaDB [hw1]> select imie, nazwisko, wartosc,  from zamowienia, towary, klienci where wartosc < (select 0.5*max(wartosc) from zamowienia) AND `towar-id` = towary.id AND `klient-id` = klienci.id;          
  151. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from zamowienia, towary, klienci where wartosc < (select 0.5*max(wartosc) from z' at line 1
  152. MariaDB [hw1]> select imie, nazwisko, wartosc,  from zamowienia, towary, klienci where wartosc < (select max(wartosc) from zamowienia)*0.5 AND `towar-id` = towary.id AND `klient-id` = klienci.id;                                                            
  153. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from zamowienia, towary, klienci where wartosc < (select max(wartosc) from zamow' at line 1
  154. MariaDB [hw1]> select imie, nazwisko, wartosc,  from zamowienia, towary, klienci where wartosc < (select max(wartosc) from zamowienia)*0.5 AND `towar-id` = towary.id AND `klient-id` = klienci.id;                                                    
  155. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from zamowienia, towary, klienci where wartosc < (select max(wartosc) from zamow' at line 1
  156. MariaDB [hw1]> select * from zamowienia, towary, klienci where wartosc < (select max(wartosc) from zamowienia)*0.5 AND `towar-id` = towary.id AND `klient-id` = klienci.id;                                                                                            
  157. +----+-----------+----------+------------+---------+----+--------------+-------+------+----+-----------+------------+              
  158. | id | klient-id | towar-id | data       | wartosc | id | nazwa        | grupa | cena | id | imie      | nazwisko   |              
  159. +----+-----------+----------+------------+---------+----+--------------+-------+------+----+-----------+------------+              
  160. |  1 |         1 |        2 | 2012-01-01 |   12.44 |  2 | Nakrętki     |     1 | 3.00 |  1 | Jan       | Kowalski   |              
  161. |  2 |         1 |        4 | 2012-01-01 |   10.22 |  4 | Płaskowniki  |     2 | 9.00 |  1 | Jan       | Kowalski   |
  162. |  6 |         2 |        4 | 2012-03-01 |    2.28 |  4 | Płaskowniki  |     2 | 9.00 |  2 | Andrzej   | Nowak      |
  163. |  8 |         3 |        4 | 2012-01-01 |   12.44 |  4 | Płaskowniki  |     2 | 9.00 |  3 | Janusz    | Malinowski |
  164. | 10 |         5 |        4 | 2012-03-02 |    6.11 |  4 | Płaskowniki  |     2 | 9.00 |  5 | Krzysztof | Nowicki    |
  165. +----+-----------+----------+------------+---------+----+--------------+-------+------+----+-----------+------------+
  166. 5 rows in set (0.00 sec)
  167.  
  168. MariaDB [hw1]> select * from towary;    
  169. +----+--------------+-------+-------+
  170. | id | nazwa        | grupa | cena  |
  171. +----+--------------+-------+-------+
  172. |  1 | Śruby        |     1 |  2.00 |
  173. |  2 | Nakrętki     |     1 |  3.00 |
  174. |  3 | Kątowniki    |     2 |  8.00 |
  175. |  4 | Płaskowniki  |     2 |  9.00 |
  176. |  5 | Gwoździe     |     1 |  1.00 |
  177. |  6 | Panele       |     3 | 15.00 |
  178. |  7 | Wkręty       |     1 |  4.00 |
  179. |  8 | Deski        |     3 | 12.00 |
  180. |  9 | Płyty        |     3 | 19.00 |
  181. +----+--------------+-------+-------+
  182. 9 rows in set (0.00 sec)
  183.  
  184. MariaDB [hw1]> slect avg(cena), grupa from towary group by grupa
  185.     -> ;
  186. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'slect avg(cena), grupa from towary group by grupa' at line 1
  187. MariaDB [hw1]> select avg(cena), grupa from towary group by grupa
  188.     -> ;
  189. +-----------+-------+
  190. | avg(cena) | grupa |
  191. +-----------+-------+
  192. |  2.500000 |     1 |
  193. |  8.500000 |     2 |
  194. | 15.333333 |     3 |
  195. +-----------+-------+
  196. 3 rows in set (0.00 sec)
  197.  
  198. MariaDB [hw1]> select nazwa, cena, grupa from towary where cena > (select cena from towary where cena > 10);
  199. ERROR 1242 (21000): Subquery returns more than 1 row
  200. MariaDB [hw1]> select nazwa, cena, grupa from towary where cena > (select cena from towary where cena > cena=10);
  201. Empty set (0.00 sec)
  202.  
  203. MariaDB [hw1]> select nazwa, cena, grupa from towary where cena > 10;                                            
  204. +--------+-------+-------+
  205. | nazwa  | cena  | grupa |
  206. +--------+-------+-------+
  207. | Panele | 15.00 |     3 |
  208. | Deski  | 12.00 |     3 |
  209. | Płyty  | 19.00 |     3 |
  210. +--------+-------+-------+
  211. 3 rows in set (0.00 sec)
  212.  
  213. MariaDB [hw1]> select nazwa, cena, grupa from towary where cena > 10 group by grupa;
  214. +--------+-------+-------+
  215. | nazwa  | cena  | grupa |
  216. +--------+-------+-------+
  217. | Panele | 15.00 |     3 |
  218. +--------+-------+-------+
  219. 1 row in set (0.00 sec)
  220.  
  221. MariaDB [hw1]> select nazwa, cena, grupa from towary as XX where cena > (select avg(cena) from towary where towary.grupa = XX.grupa);
  222. +--------------+-------+-------+
  223. | nazwa        | cena  | grupa |
  224. +--------------+-------+-------+
  225. | Nakrętki     |  3.00 |     1 |
  226. | Płaskowniki  |  9.00 |     2 |
  227. | Wkręty       |  4.00 |     1 |
  228. | Płyty        | 19.00 |     3 |
  229. +--------------+-------+-------+
  230. 4 rows in set (0.00 sec)
  231.  
  232. MariaDB [hw1]> select nazwa, cena, grupa from towary as towaryNew where cena > (select avg(cena) from towary where towary.grupa = towaryNew.grupa);
  233. +--------------+-------+-------+
  234. | nazwa        | cena  | grupa |
  235. +--------------+-------+-------+
  236. | Nakrętki     |  3.00 |     1 |
  237. | Płaskowniki  |  9.00 |     2 |
  238. | Wkręty       |  4.00 |     1 |
  239. | Płyty        | 19.00 |     3 |
  240. +--------------+-------+-------+
  241. 4 rows in set (0.00 sec)
  242.  
  243. MariaDB [hw1]> select nazwa, cena, grupa from towary where cena > (select avg(cena) from towary as towaryNew where towary.grupa = towaryNew.grupa);
  244. +--------------+-------+-------+
  245. | nazwa        | cena  | grupa |
  246. +--------------+-------+-------+
  247. | Nakrętki     |  3.00 |     1 |
  248. | Płaskowniki  |  9.00 |     2 |
  249. | Wkręty       |  4.00 |     1 |
  250. | Płyty        | 19.00 |     3 |
  251. +--------------+-------+-------+
  252. 4 rows in set (0.00 sec)
  253.  
  254. MariaDB [hw1]> select * from zamowienia;
  255. +----+-----------+----------+------------+---------+
  256. | id | klient-id | towar-id | data       | wartosc |
  257. +----+-----------+----------+------------+---------+
  258. |  1 |         1 |        2 | 2012-01-01 |   12.44 |
  259. |  2 |         1 |        4 | 2012-01-01 |   10.22 |
  260. |  3 |         1 |        2 | 2012-02-12 |   15.88 |
  261. |  4 |         2 |        1 | 2012-01-01 |   22.35 |
  262. |  5 |         2 |        1 | 2012-02-12 |   28.00 |
  263. |  6 |         2 |        4 | 2012-03-01 |    2.28 |
  264. |  7 |         3 |        1 | 2012-02-11 |   18.48 |
  265. |  8 |         3 |        4 | 2012-01-01 |   12.44 |
  266. |  9 |         4 |        1 | 2012-03-11 |   15.26 |
  267. | 10 |         5 |        4 | 2012-03-02 |    6.11 |
  268. +----+-----------+----------+------------+---------+
  269. 10 rows in set (0.00 sec)
  270.  
  271. MariaDB [hw1]> select count(*) as ilosc from zamowienia where wartosc > (select avg(wartosc) from zamowienia);
  272. +-------+
  273. | ilosc |
  274. +-------+
  275. |     5 |
  276. +-------+
  277. 1 row in set (0.00 sec)
  278.  
  279. MariaDB [hw1]> select * from zamowienia;
  280. +----+-----------+----------+------------+---------+
  281. | id | klient-id | towar-id | data       | wartosc |
  282. +----+-----------+----------+------------+---------+
  283. |  1 |         1 |        2 | 2012-01-01 |   12.44 |
  284. |  2 |         1 |        4 | 2012-01-01 |   10.22 |
  285. |  3 |         1 |        2 | 2012-02-12 |   15.88 |
  286. |  4 |         2 |        1 | 2012-01-01 |   22.35 |
  287. |  5 |         2 |        1 | 2012-02-12 |   28.00 |
  288. |  6 |         2 |        4 | 2012-03-01 |    2.28 |
  289. |  7 |         3 |        1 | 2012-02-11 |   18.48 |
  290. |  8 |         3 |        4 | 2012-01-01 |   12.44 |
  291. |  9 |         4 |        1 | 2012-03-11 |   15.26 |
  292. | 10 |         5 |        4 | 2012-03-02 |    6.11 |
  293. +----+-----------+----------+------------+---------+
  294. 10 rows in set (0.00 sec)
  295.  
  296. MariaDB [hw1]> select `towar-id`, id, cena from zamowienia where (id,cena) in (select id, min(wartosc) from zamowienia);
  297. ERROR 1054 (42S22): Unknown column 'cena' in 'field list'
  298. MariaDB [hw1]> select `towar-id`, id, cena from zamowienia where (id,wartosc) in (select id, min(wartosc) from zamowienia);
  299. ERROR 1054 (42S22): Unknown column 'cena' in 'field list'
  300. MariaDB [hw1]> select `towar-id`, id, wartosc from zamowienia where (id,wartosc) in (select id, min(wartosc) from zamowienia);
  301. Empty set (0.00 sec)
  302.  
  303. MariaDB [hw1]> select `towar-id`, id, wartosc from zamowienia where (6,wartosc) in (select id, min(wartosc) from zamowienia);
  304. Empty set (0.00 sec)
  305.  
  306. MariaDB [hw1]> select `towar-id`, id, wartosc from zamowienia where (1,wartosc) in (select id, min(wartosc) from zamowienia);
  307. +----------+----+---------+
  308. | towar-id | id | wartosc |
  309. +----------+----+---------+
  310. |        4 |  6 |    2.28 |
  311. +----------+----+---------+
  312. 1 row in set (0.00 sec)
  313.  
  314. MariaDB [hw1]>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement