V dnešnej lekcii:
* príkaz WHERE
* logické operátori
* doplňovanie a mazanie dát
* príkaz COUNT
..
Príkaz WHERE
Takže s príkazom SELECT sme sa oboznámili v predchádzajúcom diele. Vieme už vypísať všetky dáta z tabuliek, ale aj iba niektoré stĺpce.Niekedy sa ale stáva, že budeme potrebovať vypísať iba dáta, ktoré napr. majú ID=2, alebo v určitom stĺpci obsahujú nejaké slovo, podľa ktorého ho nájdeme.
Na to nám slúži príkaz WHERE. Syntaxa je:
SELECT stĺpec FROM meno_tabulky WHERE stĺpec=“neaka_hodnota“;
Takže nasledujúci výraz nám z našej tabuľky programovanie vyberie zo stĺpca iba názov “Jazyk SQL“
mysql> SELECT mysql FROM programovanie WHERE mysql="Jazyk SQL";
Odpoveď servera:
+-----------+
| mysql |
+-----------+
| Jazyk SQL |
+-----------+
1 row in set (0.02 sec)
Takže na tomto príklade krásne vidíme, ako nám MySQL server vráti iba stĺpec s jedným názvom “Jazyk SQL“.
Teraz si skúsme vyskúšať vybrať všetky záznamy, ktoré obsahujú poradové ID 2.
mysql> SELECT*FROM programovanie WHERE ID="2";
Odpoveď servera:
+---------------------+----------+----------------+------------+----+
| php | mysql | html | datum | ID |
+---------------------+----------+----------------+------------+----+
| Programovanie v PHP | Databázy | Tvorba stránok | 2005-12-11 | 2 |
+---------------------+----------+----------------+------------+----+
1 row in set (0.11 sec)
Logické operátori
Povedzme, že budeme chcieť získať všetky záznamy, v ktorých mysql="Databázy" a kde html=“Tvorba stránok“.
mysql> SELECT*FROM programovanie WHERE mysql="Databázy" AND html="Tvorba stránok";
Odpoveď servera:
+---------------------+----------+----------------+------------+----+
| php | mysql | html | datum | ID |
+---------------------+----------+----------------+------------+----+
| Programovanie v PHP | Databázy | Tvorba stránok | 2005-12-11 | 1 |
| Programovanie v PHP | Databázy | Tvorba stránok | 2005-12-11 | 2 |
+---------------------+----------+----------------+------------+----+
2 rows in set (0.00 sec)
Použili sme na to logický operátor AND, ktorý funguje na princípe:
Vyber všetko z tabuľky_programovanie, kde mysql je rovné "Databázy" a html je rovné "Tvorba stránok".
Môžeme využiť aj logického operátora OR.
mysql> SELECT*FROM programovanie WHERE mysql="Jazyk SQL" OR ID="1";
Odpoveď servera:
+---------------------+-----------+----------------+------------+----+
| php | mysql | html | datum | ID |
+---------------------+-----------+----------------+------------+----+
| Programovanie v PHP | Databázy | Tvorba stránok | 2005-12-11 | 1 |
| NULL | Jazyk SQL | Tag body | 2005-12-26 | 3 |
+---------------------+-----------+----------------+------------+----+
2 rows in set (0.06 sec)
Príncíp:
Vyber všetko z tabuľky_programovanie, kde mysql je rovné "Databázy" alebo html je rovné "Tvorba stránok".
Doplňovanie a mazanie dát
Určite sa stretneme s tým, že svoje tabuľky budeme neskôr chcieť upravovať alebo mazať. Možno budete chcieť niekedy zmazať záznam úplne. Ak si spomínate, v minulom diele sme si hovorili o nulových hodnotách. V tom prípade sme nezadali nič pri stĺpci php v treťom riadku s poradovým ID=3.Poďme ju teda teraz doplniť.
Pre aktualizáciu záznamu používame výraz UPDATE, jeho syntaxa je:
UPDATE meno_tabulky SET meno_stlpca=“Text“ WHERE meno_stlpca=“hodnota_v_stlpci“;
mysql> UPDATE programovanie SET php="Dynamicke stranky" WHERE ID="3";
Odpoveď servera:
Query OK, 1 row affected (0.12 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Všimnime si, ako nás MySQL server informuje o zmene záznamu. Takže teraz si overíme zmenený záznam.
mysql> SELECT*FROM programovanie WHERE ID="3";
Odpoveď servera:
+-------------------+-----------+----------+------------+----+
| php | mysql | html | datum | ID |
+-------------------+-----------+----------+------------+----+
| Dynamicke stranky | Jazyk SQL | Tag body | 2005-12-26 | 3 |
+-------------------+-----------+----------+------------+----+
1 row in set (0.00 sec)
Niekedy sa stretneme aj s tým, že budeme nútený náš záznam vymazať. Na to sa používa výraz DELETE. Základná syntaxa vyzerá takto:
DELETE FROM meno_tabulky WHERE meno_stlpca=“Nejaka_hodnota“;
Pri mazaní záznamu je lepšie používať aj identifikátor ID, abysme sa uistili predtým, ako ho zmažeme.
Takže teraz si poďme zmazať záznam obsahujúci názov “Dynamicke stranky“.
mysql> DELETE FROM programovanie WHERE php="Dynamicke stranky" AND ID="3";
Odpoveď servera:
Query OK, 1 row affected (0.04 sec)
Teraz sa presvedčíme, že sme náš záznam úspešne zmazali.
mysql> SELECT*FROM programovanie WHERE ID="3";
Odpoveď servera:
Empty set (0.00 sec)
Príkaz COUNT
Výraz COUNT slúži k práci s riadkami. Vracia počet riadkov. Syntaxa je:
SELECT COUNT(*) FROM meno_tabulky;
mysql> SELECT COUNT(*) FROM programovanie;
Odpoveď servera:
+----------+
| COUNT(*) |
+----------+
| 2 |
+----------+
1 row in set (0.09 sec)
Tento výraz nám zobrazil aktuálny počet riadkov v tabuľke programovanie.
Exitujú aj iné syntaxy výrazu COUNT. Skúsme si zobraziť, v koľkých riadkov sa nám napr. nachádza slovo Databázy.
mysql> SELECT COUNT(*) AS mysql FROM programovanie WHERE mysql="Databázy";
Odpoveď servera:
+-------+
| mysql |
+-------+
| 2 |
+-------+
1 row in set (0.01 sec)
V ďalšom dieli sa naučíme zoskupovať dáta, vyhľadávať text, obmedzovať počet záznamov na výstupe, atď... Je sa na čo tešiť.
Úloha číslo 3
V tejto tretej úlohe ide hlavne o vyskúšanie si nových výrazov!
- Vyskúšajte si príkaz WHERE rôznymi spôsobmi
- Použite aj logické operátori AND a OR
- Skúste si doplniť nejaký záznam do tabuľky, poprípade ho vymazať. Využite pritom aj výraz WHERE
- A nakoniec si pohrajte s príkazom COUNT