MySQL časť piata - napĺňanie tabuliek

V našej ďalšej práci s MySQL sa zameriame na pokračovanie už začatej rozpravy o tabuľkách a naznačíme si ďalšie možnosti, ktoré nám MySQL ponúka pri manipulácii s nimi.

V minulej - štvrtej časti nášho spoznávacieho seriálu sme si vytvorili našu prvú tabuľku, teda jej štruktúru. Ešte na úvod sa pristavme pri tejto štruktúre a možnosti jej nastavenia. Pri vytváraní tabuľky môžeme okrem základných parametrov pri každej položke nastaviť niekoľko ďalších vlastností, ktoré nám bližšie špecifikujú túto položku, rsp. ju jednoznačne definujú. Najviac používanou vlastnosťou je NOT NULL. Takto definovaná položka nemôže obsahovať prázdnu hodnotu. Ďalšou používanou vlastnosťou je PRIMARY KEY. Táto nám udáva, ktorá položka bude primárnym kľúčom.

Ukážme si ich použitie na praktickom príklade:

mysql> create table authors1
    -> (id int(11) NOT NULL PRIMARY KEY,
    -> autor varchar(90),
    -> mail varchar(60),
    -> telefon varchar(30))
    -> ;

Vytvorili sme si tabuľku authors1, ktorá sa skladá z nasledovných položiek: id (id autora), autor (meno), mail (e-mailova adresa) a telefon. Zároveň sme zadefinovali pomocou vlastnosti NOT NULL položku id nenulovú a okrem toho sa bude chovať ako primárny kľúč. Potvrdenie tabuľky nám indikuje nasledovný dialóg:

Query OK, 0 rows affected (0.00 sec)

Ak si chceme pozrieť štruktúru našej novej tabuľky, nie je nič jednoduchšie. Použijeme príkaz DESCRIBE. Výsledok bude asi nasledovný:

mysql> DESCRIBE authors1;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      |      | PRI | 0       |       |
| autor   | varchar(90 ) | YES  |     | NULL    |       |
| mail    | varchar(60)  | YES  |     | NULL    |       |
| telefon | varchar(30)  | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

Ak chceme náhodou nejakú tabuľku vymazať, je potrebné použiť príkaz DROP. Formát príkazu bude teda:

DROP TABLE table;

Ak teda chceme zmazať tabuľku video10, použijeme nasledovný príkaz:

mysql> DROP TABLE video10;
Query OK, 0 rows affected (0.06 sec)

Nezabudnite na to, že po použití tohto príkazu je tabuľka nenávratne stratená, takže opatrne.

Poďme si už konečne naplniť našu tabuľku nejakými údajmi, lebo tabuliek sme si už vytvorili už niekoľko ale zatiaľ sú prázdne. Na pridávanie údajov do tabuliek slúži v SQL príkaz INSERT INTO. Formát príkazu vypadá teda nasledovne:

INSERT INTO meno_tabulky VALUES (
hodnota_1_polozky,
hodnota_2_polozky,
hodnota_3_polozky,
.
.
hodnota_n_polozky)

Skúsme to teraz na ostro a naplňme si našu tabuľku authors1 nejakými údajmi:

mysql> INSERT INTO authors1 VALUES (
    -> 1,
    -> "Jan Kratky",
    -> "jan.kratky@domena.sk"
    -> "55698541");

Tabuľku sme síce naplnili, ale interpret nám vypísal chybu. Pri vkladaní údajov do tabuľky som sa náhodou "sekol" a zabudol som dolniť jednu čiarku (4.riadok). Dopadlo to asi takto:

ERROR 1058: Column count doesn't match value count

Týmto by som aj vás rád upozornil na možnosť výskytu takýchto chýb. V takýchto situáciách je potrebné zachovať si chladnú hlavu prekontrolovat zdrojový text a "naťukať" príkaz znova, ale už bez chýb. Správny zápis bude teda nasledovný:

mysql> INSERT INTO authors1 VALUES (
    -> 1,
    -> "Jan Kratky",
    -> "jan.kratky@domena.sk",
    -> "55698541");
Query OK, 1 row affected (0.05 sec)

Na záver si ešte ukážeme ako si zobrazíme našu tabuľku authors1 už v kompletnom stave, teda ai so záznamom. Použijeme na to príkaz SELECT, ktorému budeme na budúce venovať jednu celú časť. Určite si to zaslúži.

mysql> SELECT * from authors1;

a výsledok bude nasledovný:

+----+------------+----------------------+----------+
| id | autor      | mail                 | telefon  |
+----+------------+----------------------+----------+
|  1 | Jan Kratky | jan.kratky@domena.sk | 55698541 |
+----+------------+----------------------+----------+
1 row in set (0.11 sec)


Developer,
Stiahnuté z Developer.sk