× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

MySQL – 4. lekcia

[ http://programujte.com/profil/20356-martin-gulac/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/75-martin-zak/ ]Google [ :?rel=author ]       20. 1. 2006       34 908×

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

Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2005122602-mysql-4-lekcia/ ].