MySQL aneb u?íme se SQL jazyk (IV.)

Autor: Ji?í Luká? <jirilukas(at)supersvet.cz>, Téma: MySQL, Vydáno dne: 24. 07. 2000

Usedám ke svému po?íta?i a levou rukou na slepo hledám spína? elektrického nap?tí velký jako koruna umíst?ní p?i pravé stran? "bedny". Sou?asn? ledabyle pohlédnu skrze otev?ené ?aluzie pravým koutkem oka ven a hlavou mi jakou blesk proletí ironická poznámka týkající se sou?asného velmi chladného léta. Pozoruji ?edé tetelící se mraky a zárove? tisknu svým levým ukazová?kem nyní ji? nalezený spína?. V "bedn?" to lupne, obrazovka zajisk?í a po?íta? o?ívá. ...

... (o pár minut déle) ... dvoj-klikem spou?tím soubor mysql.exe a uvádím tak v ?innost obslu?nou utilitu, s její? pomocí budu moci pracovat s jakoukoli databází spravovanou MySQL databázovým serverem. Do p?íkazového ?ádku vpisuji následující text: "CONNECT Test" a po?aduji jeho vykonání stiskem klávesy <ENTER>. "Po?íta?" mi odpoví výpisem o stavu p?ipojení, které obsahuje ?íslo p?ipojení a jméno p?ipojené databáze, a ?eká na dal?í p?íkaz.

Nu a proto?e jsem touto poslední akcí v podstat? ukon?il na?e minulé t?etí sezení, tak si myslím, ?e by bylo vhodné za?ít m?j dal?í výklad práv? zde. - I kdy? jsem v záv?ru minulého dílu je?t? stihl nastínit, jak se provádí zalo?ení nové tabulky v na?í práv? aktivní databázi (dále jen DB), pro jistotu to dnes je?t? rad?ji zopakuji a hlavn? doplním o dal?í nezbytná fakta.

Tak tedy nejprve rozeberme si ná? minulý vzorový p?íklad!

Vzorový p?íklad:
(?ervený text ... text generovaný MySQL serverem, zelený text ... ná? p?íkaz)

mysql> CREATE TABLE pokus
    -> (jmeno char(10),
    -> cislo integer);
Query OK, O rows affected (0.05 sec)

Jeliko? si myslím, ?e spojení CREATE TABLE není nutné nijak více komentovat, p?ejdu rad?ji dále, abych vás zbyte?n? nezdr?oval. Slovem pokus definujeme jméno práv? vytvá?ené tabulky a kone?n? "obsahem" hlavní závorky, na jejím? konci najdeme st?edník, specifikujeme po?et, ozna?ení a typ sloupc? (v?etn? datového typu) zakládané tabulky.

Mezi nejpou?ívan?j?í datové typy pat?í: znakový (char), celo?íselný (integer), ?íslo s plovoucí desetinou ?árkou (float), datumový (date), datumový s ?asem (datetime), textový (text), atd.

Proto?e datových typ? je mnoho a v?echny jsou popsány v manuálu MySQL databázového serveru, probereme zde pouze princip jejich volby a pou?ití t?ch nejzákladn?j?ích si uká?eme na skute?ném p?íkladu.

Princip volby vhodného datového typu:

Podíváte-li se pon?kud detailn?ji na vý?e uvedený vý?et nejpou?ívan?j?ích datových typ?, m?li byste po n?jaké chvilce dosp?t k záv?ru, ?e lze datové typy rozd?lit bu?to do dvou nebo t?í základních kategorií a to na: ?íselné a znakové nebo na ?íselné, znakové a datumové/?asové. Zále?í jen na tom, zda-li jste ochotni datumový a ?asový zápis chápat jako specifickou znakovou posloupnost nebo ne.

Tak trochu "mimo tento sv?t" ?ije je?t? jeden základní typ, který ozna?ujeme jako "logický" (v angli?tin? je ozna?ován jako: "boolean" nebo "bool") a m??e obsahovat jednu ze dvou mo?ných následujících hodnot: pravdu (true) nebo nepravdu (false).

Mo?ná se budete divit, ale se znalostí vý?e uvedené "základní pou?ky" a skute?ností z ní vyplývajících, jste pln? schopni zakládat své tabulky s co mo?ná nejvhodn?ji stanovenými datovými typy jejich sloupc?. - A jak je to mo?né? Inu proto, ?e dal?í d?lení je ji? více mén? pouhou dola?ovací zále?itostí, kde nap?. jasn? stanovíte skute?nost, ?e sloupec A bude obsahovat pouze celo?íselné hodnoty (- vhodné pro identifika?ní sloupce) a sloupec B naopak ?ísla s desetinou ?árkou (- nap?. pen??ní ?ástky nebo výsledky p?esných m??ení).

Mezi datovými typy v?ak neexistují pouze jen "druhové rozdíly", ale nap?íklad i kapacitní a to jak z pohledu u?ivatele, tak i z pohledu "databázového serveru". - Z u?ivatelského pohledu se jedná o omezení maximálního rozsahu hodnot, které je daný typ schopen akceptovat (nap?. znakový typ CHAR je schopen pojmout maximáln? 255 znak?) a z pohledu databázového serveru se jedná o konkrétní pam?ťové nároky jednotlivých datových typ?.

Av?ak to ji? zabíhám p?íli? do detail? a vzdaluji se tak své hlavní my?lence a sice "odborné nenáro?nosti"!

Vzorový p?íklad ?íslo dv?: (Zadání: Zalo?te novou tabulku "zamestnanec", která bude obsahovat ?ty?i následující sloupce: poradove_cislo, jmeno, prijmeni, plat. Zvolte vhodné datové typy s vyu?itím vý?e uvedeného vý?tu! Pozor, názvy datových typ? se do p?íkazu zapisují v angli?tin?! Datový typ CHAR m??eme zapsat samostatn? nebo s bli??ím omezením specifikovaným v závorce (max. hodnota 255) za klí?ovým slovem.)

?e?ení:

mysql> CREATE TABLE zamestnanec
    -> (poradove_cislo integer,
    -> jmeno char(10),
    -> prijmeni char(15),
    -> plat float);
Query OK, O rows affected (0.00 sec)

P?í?t? si povíme jak zru?it námi zalo?enou tabulku a jak ji naplnit daty.




Copyright supersvet.cz, 1998-2005