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

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

Po del?í odmlce vás op?t vítám p?i ?tení dal?ího jedenáctého dílu na?eho seriálu "MySQL aneb u?íme se SQL jazyk", ve kterém si uká?eme jak jednodu?e lze zjistit, jaké databáze a tabulky aktuáln? spravuje vá? rela?ní DB server MySQL, jak omezit mno?ství dat (?ádk? z tabulky) zaslaných na výstup va?im DB serverem a v neposlední ?ad? vám také p?edvedu jak zajistit automatické ?íslování (auto_increment) nov? vkládaných ?ádk? do tabulky.

Výpis v?ech spravovaných databází a tabulek

Administrace, správa a p?ehlednost. - Tak p?esn? tyto t?i slova 100 % vystihují ur?ení dvou následujících p?íkaz?: SHOW DATABASES a SHOW TABLES, které vám umo?ní získat ten nejaktuáln?j?í výpis o v?ech spravovaných databázích a tabulkách v t?chto databázích se nalézajících.

1) Výpis databází - Syntaxe: SHOW DATABASES;
Po potvrzení zadání tohoto p?íkazu ihned obdr?íte výpis ve form? jedno sloupcové tabulky Database, kde jednotlivé ?ádky budou p?edstavovat p?esn? jednu databázi. V mém p?ípad? jsem tedy obdr?el následující výpis:

+-----------+
| Database  |
+-----------+
| autor     |
| mysql     |
| supersvet |
| test      |
+-----------+

2) Výpis v?ech tabulek konkrétní databáze - Syntaxe: SHOW TABLES;
Jedná se v podstat? o ten samý typ výpisu, kdy je zobrazena jedno sloupcová tabulka Tables_in_jméno-tabulky, p?i?em? jednotlivé ?ádky této tabulky p?edstavují konkrétní tabulky v databázi, ve které jste p?ihlá?eni. - Tento p?íkaz nelze korektn? provést, dokud se nep?ihlásíte do n?jaké databáze (connect jméno_databáze). Ukázkový výpis:

+----------------+
| Tables_in_test |
+----------------+
| presons        |
| shirts         |
| zamestnanec    |
+----------------+

Omezení mno?ství výstupních dat/?ádk?

V p?ípad?, ?e pot?ebujete z n?jaké velké tabulky vypsal v?t?í objem dat a nechcete v?e zapsat nap?. do jedné velkém WWW stránky, nabízí vám MySQL mo?nost tento výpis "rozsekat" na n?kolik men?ích ?ástí, jejich? výpisy budou kapacitn? omezeny na n-?ádk?. P?ímo prvot?ídními ukázkovými p?íklady takovýchto rozd?lených výpis? jsou výstupy internetových fulltextových vyhledávacích server?, které jsou mnohdy rozd?leny na desítky WWW stránek (= specificky ohrani?ených výstup?).

Jeliko? samotná syntaxe (parametr uvedený v hranatých závorkách je nepovinný)

LIMIT [po?ítat_od_?ádku],mno?ství_zobrazených_?ádk?

... celého p?íkazu je velmi jednoduchá p?ejdu ihned k ukázkovému p?íkladu, který celou v?c jednozna?n? demonstruje.

1) P?ed samotným omezeným výpisem vám doporu?uji provést celkový výpis, aby byly následné zm?ny co mo?ná nejvíce patrné.

+----------------+-------+------------+----------+-------------+
| poradove_cislo | jmeno | prijmeni   | plat     | id_oddeleni |
+----------------+-------+------------+----------+-------------+
|              1 | Jan   | Novak      | 50000.00 |        NULL |
|              3 | Jiri  | Lopata     | 50000.00 |        NULL |
|              4 | David | Mikes      | 70000.00 |        NULL |
|              5 | Tomas | Privratsky | 65000.00 |        NULL |
|              6 | Jan   | Vomacka    | 90000.00 |        NULL |
+----------------+-------+------------+----------+-------------+

2) Prove?te výpis omezený na dva ?ádky: (SELECT * FROM zamestnanec LIMIT 2;)

+----------------+-------+------------+----------+-------------+
| poradove_cislo | jmeno | prijmeni   | plat     | id_oddeleni |
+----------------+-------+------------+----------+-------------+
|              1 | Jan   | Novak      | 50000.00 |        NULL |
|              3 | Jiri  | Lopata     | 50000.00 |        NULL |
+----------------+-------+------------+----------+-------------+

3) Nyní prove?te op?tovn? stejn? kapacitn? omezený výpis s tím, ?e bude za?ínat o dva ?ádky "vý?e", ne?-li p?ede?lý. Pozor na skute?nost, ?e tento limitující p?íkaz po?ítá ?ádky od nuly!!! (SELECT * FROM zamestnanec LIMIT 2,2;)

+----------------+-------+------------+----------+-------------+
| poradove_cislo | jmeno | prijmeni   | plat     | id_oddeleni |
+----------------+-------+------------+----------+-------------+
|              4 | David | Mikes      | 70000.00 |        NULL |
|              5 | Tomas | Privratsky | 65000.00 |        NULL |
+----------------+-------+------------+----------+-------------+

Vau, zase jsem se rozepsal a na poslední v úvodu zmín?né téma mi nezbylo místo. No, nevadí, p?í?t? to napravím. P?eji p?íjemný týden ...




Copyright supersvet.cz, 1998-2005