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.