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 :)