V predchádzajúcich troch častiach nášho seriálu o MySQL sme sa podrobne venovali príkazu SELECT a dnes túto časť rozpravy ukončíme a zameriame sa na update a mazanie už existujúcich údajov v našich tabuľkách.
Výpis našej notorickej tabuľky vypadá asi nasledovne (to len na osvieženie pamäti).
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 |
| 4 | Pier | pier@eedd.com | 4785478 | 22 |
+----+--------+----------------+---------+------+
4 rows in set (0.06 sec)
Mazanie záznamov
Pre vymazávanie údajov z už vytvorených tabuliek platí nasledovné pravidlo:
DELETE FROM /meno_tabuľky/ WHERE /podmienka/
Tento príkaz nám vymaže z tabuľky /meno_tabuľky/ všetky záznamy vyhovujúce podmienke /podmienka/. Vcelku jednoduché nie? Skúsme si to teda ukázať na praktickom príklade. A síce budeme chcieť vymazať z našej tabuľky authors2 práve ten záznam, ktorý vyhovuje podmienke: id=4, teda posledný záznam v tabuľke.
mysql> DELETE FROM authors2 WHERE id=4;
Query OK, 1 row affected (0.22 sec)
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)
Ako môžeme vidieť, posledný záznam nám už v tabuľke chýba. Rád by som Vás však upozornil na jednu nepríjemnú skutočnosť. !! Záznam ktorý v tabuľke vymažete už nie je možné vrátiť späť!!! To znamená, postupujte pri tomto príkaze nanajvýš obozretne. Taktiež pozor na príkaz:
DELETE FROM authors2
Tento príkaz totiž vymaže všetky záznamy z tabuľky authors2 a tieto sa už nijakým spôsobom nedajú zachrániť. Takže ešte raz POZOR!
Update (modifikácia) záznamov
Ak sa napríklad pomýlite pri zadávaní údajov do tabuľky a radi by ste svoju chybu napravili, máte v podstate dve možnosti:
1.) Vzhľadom na naše doterajšie skúsenosti s MySQL môžeme uvedený záznam zmazať pomocou príkazu DELETE a nanovo ho nahodiť pomocou príkazu INSERT.
2.) Okrem toho je tu však aj jednoduchšia cesta. Naučíme sa používať príkaz UPDATE a podľa potreby zmeníme v tabuľke údaj ktorý potrebujeme.
Ako teda ten UPDATE funguje?
UPDATE /meno_tabuľky/
SET /nazov_polozky/ = /hodnota_polozky/
/nazov_polozky/ = /hodnota_polozky/
WHERE /podmienka/
Ako môžeme vidieť, pomocou podmienky /podmienka/ bližšie špecifikujeme údaje ktoré chceme zmeniť.
mysql> UPDATE authors2
-> SET autor = "Janko Hrasko"
-> WHERE id = 2;
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM authors2;
+----+--------------+----------------+---------+------+
| id | autor | mail | telefon | vek |
+----+--------------+----------------+---------+------+
| 1 | Andrej | annn@dreeej.sk | 145879 | 25 |
| 2 | Janko Hrasko | jann@email.sk | 1458796 | 29 |
| 3 | Marek | frank@nic.sk | 7458741 | 24 |
+----+--------------+----------------+---------+------+
3 rows in set (0.00 sec)
Príkaz UPDATE si dokončíme na budúce takže dnes dáme nášmu MySQL pokoj. Nezabudnite na to, že leto je v plnom prúde a len tak vysedávať pred počítačom nie je vždy najrozumnejšie :)