View difference between Paste ID: kM0mMnDN and ZcBziC0u
SHOW: | | - or go back to the newest paste.
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]>