V minulej Φasti nßÜho serißlu o MySQL sme si zaΦali popisova¥ snß∩ najznßmejÜφ a najpou₧φvanejÜφ SQL prikßz SELECT. Ke∩₧e sa jednß o dlhÜie rozprßvanie, rozdelili sme si ho na viac Φastφ.
┌vodnΘ pravidlß a zßkladnΘ pou₧itie prφkazu SELECT si m⌠₧ete dodatoΦne preÜtudova¥ na tejto adrese, venovali sme sa toti₧ tomu v minulej Φasti.
Na zaΦiatok sa zameriame na stanovenie podmienok v²beru, resp. selekcie z urΦitej tabu╛ky. Mo₧nosti prφkazu SELECT s· v tejto oblasti skutoΦne obrovskΘ a ve╛mi variabilnΘ.
Najsk⌠r si vytvorme nov· tabu╛ku authors2 v naÜej pokusnej databßze a napl≥me si ju nejak²mi ·dajmi. Na nej si ukß₧eme naÜe pokusy s prφkazom SELECT.
mysql> create table authors2 (id int(10) NOT NULL,
-> autor varchar(35),
-> mail varchar(58),
-> telefon varchar(20),
-> vek int(10));
Query OK, 0 rows affected (0.11 sec)
Po naplnenφ tabu╛ky nejak²mi ·dajmi by ich v²pis moho vypada¥ nasledovne:
mysql> select * from authors2;
+----+--------+----------------+---------+------+
| id | autor | mail | telefon | vek |
+----+--------+----------------+---------+------+
| 1 | Andrej | annn@dreeej.sk | 145879 | 25 |
| 2 | Jan | jann@email.sk | 1458796 | 29 |
| 3 | Marek | frank@nic.sk | 7458741 | 24 |
+----+--------+----------------+---------+------+
3 rows in set (0.00 sec)
Sk·sme teraz na naÜu tabu╛ku aplikova¥ r⌠zne pokusnΘ prφkazy na demonÜtrovanie mo₧nostφ SELECTu.
Najsk⌠r sk·sme z tabu╛ky vyselektova¥ tie osoby, ktor²ch vek je vyÜÜφ ako 24 rokov. Budeme chcie¥ vydie¥ iba zßznamy ID, meno autora a vek.
mysql> SELECT id,autor,vek FROM authors2 WHERE vek > 24;
+----+--------+------+
| id | autor | vek |
+----+--------+------+
| 1 | Andrej | 25 |
| 2 | Jan | 29 |
+----+--------+------+
2 rows in set (0.06 sec)
M⌠₧eme jasne vidie¥, ₧e ako podmienku sme pou₧ili zßpis WHERE vek > 24.
Podobne je mo₧nΘ presne vybra¥ autora s urΦit²m presn²m oznaΦenφm. V naÜej podmienke sa zmenφ len znamienko.
mysql> SELECT autor,mail,telefon FROM authors2 WHERE vek = 24;
+-------+--------------+---------+
| autor | mail | telefon |
+-------+--------------+---------+
| Marek | frank@nic.sk | 7458741 |
+-------+--------------+---------+
1 row in set (0.00 sec)
V tomto prφpade podmienku rovnosti veku sp╛≥a jeden zßznam, je to zßznam s id=3.
Keby sme vÜak chceli porovna¥ polo₧ky, ktorΘ obsahuj· textovΘ re¥azce, znamienko "=" pou₧i¥ nem⌠₧eme.
V tomto prφpade je potrebnΘ pou₧i¥ operßtor LIKE. Tak₧e ak h╛adßme v tabu╛ke authors2 ·daje o autorovi Andrej, pou₧ijeme nasledovn² prφkaz:
mysql> SELECT * FROM authors2 WHERE autor LIKE "Andrej";
+----+--------+----------------+---------+------+
| id | autor | mail | telefon | vek |
+----+--------+----------------+---------+------+
| 1 | Andrej | annn@dreeej.sk | 145879 | 25 |
+----+--------+----------------+---------+------+
1 row in set (0.06 sec)
╧alÜia spαÜka SELECTov je za nami, ale verte mi ₧e koniec to nie je. Je to skutoΦne rozsiahla Φas¥ SQL a my si ju dokonΦφme na bud·ce.