MySQL časť siedma - príkaz SELECT(II)

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.

Developer,
Stiahnuté z Developer.sk