Portál AbcLinuxu, 27. května 2024 16:07

Tvorba databází v MySQL - II

27. 3. 2003 | David Hauzar
Články - Tvorba databází v MySQL - II  

Proč používat MySQL? Základy používání MySQL v příkazovém řádku. Další zdroje informací o jazyku SQL.

V minulém díle jste se naučili modelovat databáze. Pro realizaci modelování databází musíte umět používat MySQL, ovládat jazyk SQL a znát datové typy používané v MySQL.

Výhody MySQL

A tak dále. Seznam všech výhod MySQL by byl velmi dlouhý a čtení jistě ubíjející, proto jsem vybral jen některé.

Používání MySQL

Instalace MySQL

Předtím, než budete moci MySQL začít používat, musíte si ho nainstalovat. MySQL je součástí většiny linuxových distribucí, takže asi nic nebudete muset stahovat. Pokud si s instalací nevíte rady, přečtěte si například tento článek (interval.cz) zabývající se instalcí MySQL v Linuxu. Pokud chcete nainstalovat MySQL ve WINDOWS, můžete si přečíst například tento článek (reboot.cz).

Po instalaci MySQL spusťte skript mysql_install_db. Tento skript vytvoří tabulku pro udělování práv v systému MySQL. Skript vás také upozorní, aby jste nastavili kořenové heslo. Pokud nechcete s databází MySQL jen experimentovat, udělejte to.

Spouštění programu mysql a dalších nástrojů pro práci s MySQL

Pokud budete chtít spustit program mysql nebo nějaký z nástrojů pro práci s MySQL, musíte spustit terminál (popřípadě příkazový řádek ve Windows). Pokud jste neinstalovali MySQL z rpm, musíte se přesunout do adresáře:

cesta/k/adresáři/kam/jste/MySQL/nainstalovali/bin

a napsat jméno požadovaného programu.

Pokud jste instalovali MySQL z balíčku, stačí jednoduše napsat jméno požadovaného programu. Veškeré příklady budou prováděny tímto způsobem, takže pokud jste MySQL neinstalovali z balíčku, musíte před název spouštěného programu zadat cestu k adresáři, kam jste MySQL nainstalovali.

Spuštění a zastavení služby mysqld

MySQL je program typu klient server. Server MySQL je spuštěn na pozadí jako služba mysqld. Pokud chcete spustit službu mysqld, přihlašte se jako systémový uživatel root a zadejte následující příkaz:

safe_mysqld &

službu zastavíte příkazem:

mysqladmin -p shutdown

Nejlepší je, když se vám služba bude spouštět automaticky při startu počítače. Pokud jste MySQL nainstalovali jako součást distribuce, máte pravděpodobně takto MySQL už nastavené. Pokud ne, prostudujte si dokumentaci.

Klient MySQL

Služba mysqld běží na pozadí a zpracovává požadavky. Požadavky mu může zasílat třeba aplikace napsaná v PHP. S MySQL je dodáván klient MySQL sloužící ke komunikaci se službou mysqld (databázovým serverem) pomocí příkazové řádky. Klienta MySQL spustíte příkazem:

mysql [- u uživatel] [-p]

kde za nepovinným přepínačem -u napíšete jméno uživatele (pokud budete chtít např. vytvářet databáze, zadejte root - více se dozvíte v některém z příštích dílů). Další nepovinný přepínač-p znamená, že po potvrzení budete zadávat heslo.

Program se ovládá pomocí příkazů jazyka SQL. Každý příkaz musíte ukončit středníkem. Pokud budete používat MySQL často, zjistíte, že ovládání programu pomocí psaní příkazů je mnohem rychlejší, než klikání. Pokud budete používat MySQL příležitostně, asi oceníte nějakou tu grafickou nástavbu. Vynikající je aplikace PhpMyAdmin. Je to program napsaný v PHP, proto musíte mít k jeho používání nainstalovaný interpret PHP. PhpMyAdmin se ovládá pomocí internetového prohlížeče. Více informací o PhpMyAdmin se dozvíte například z tohoto článku (interval.cz).

Dávkové zpracování

Pokud chcete např. vytvořit tabulku, můžete samozřejmě napsat všechny příkazy k tomu potřebné přímo na příkazový řádek klienta MySQL. Pokud v kódu uděláte chybu, budete muset dané příkazy napsat znovu. To je ale dost neefektivní, a proto je dobré příkazy napsat do textového souboru (nejčastěji se používá přípona *.sql nebo *.txt). Do souboru napište příkazy úplně stejně jako kdyby jste je psali přímo na příkazovém řádku. Příkazy napsané v souboru se vykonají po zadání tohoto příkazu (musí být samozřejmě spuštěna služba mysqld):

mysql [-u uživatel] [-p] <cesta/k/souboru/v/kterem/jsou/zapsany/prislusne/prikazy.sql

Pro spouštění skriptů musíte mít privilegia pro vytváření objektů, proto jako jméno uživatele zadejte uživatele, který daná privilegia má - např. root (více viz. další pokračování). Pokud je nějaký z příkazů chybný, MySQL nahlásí chybu.

Jazyk SQL

Jak již víte z předchozího dílu, jazyk SQL je dotazovací jazyk používající se k manipulaci s daty v databázích. Pokud chcete pracovat s databázemi, musíte jazyk SQL znát. V tomto seriálu se ale jazykem SQL zabývat nebudu, a proto se ho musíte naučit z jiného zdroje (viz Odkazy a zdroje).

Nadstandardní možnosti tvorby tabulek v MySQL

Dočasné (TEMPORARY) tabulky

Dočasné tabulky existují jen v daném spojení (session) - lze je prohlížet jen v rámci daného spojení a zanikají v okamžiku ukončení daného spojení.

Dočasné tabulky můžete využít vždy, když chcete přechodně uložit data. Dočasnou tabulku vytvoříte takto:

CREATE TEMPORARY TABLE nazev_tabulky(nazev_sloupce datovy_typ);

QUERY tabulky

QUERY tabulky jsou tabulky založené na výsledcích dotazů.

Následující dotaz vytvoří dočasnou tabulku Zakaznici_2002, která bude obsahovat všechny zákazníky registrované roku 2002:

CREATE TEMPORARY TABLE Zakaznici_2002 SELECT * FROM Zakaznici
  WHERE Rok_Registrace = 2002;

Podmíněná tvorba tabulek - příkaz IF NOT EXISTS

Příkaz IF NOT EXIST slouží k ověření, zda vytvářená tabulka už v databázi neexistuje - pokud existuje, tabulka se nevytvoří.

Syntaxe podmíněného vytvoření tabulky:

CREATE TABLE IF NOT EXISTS nazev_tabulky(nazev_pole datovy_typ);

Závěr

Dnešní díl asi byl pro mnohé z vás oddechový. Ušetřenou energii doporučuji věnovat studiu základů jazyka SQL - v příštím díle se vám to už bude hodit a v dalších dílech bude znalost SQL nezbytná.

Příští díl bude zasvěcen datovým typům a modifikátorům sloupců v MySQL.

Seriál MySQL - tvorba databází (dílů: 6)

První díl: Tvorba databází v MySQL - I, poslední díl: Tvorba databází v MySQL - VI.
Předchozí díl: Tvorba databází v MySQL - I
Následující díl: Tvorba databází v MySQL - III

Související články

Seriál: Správa databází v MySQL
Praktický návod k PgSQL

Další články z této rubriky

VDR a DVB-T2, část 2.
VDR a DVB-T2, část 1.
Šifrovaný Proxmox VE 6: ZFS, LUKS, systemd_boot a Dropbear
MapTiler – proměňte obrázek v zoomovatelnou mapu
Syncthing

Diskuse k tomuto článku

28.3.2003 02:55 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše proc tak tvrde k phpMyAdmin?
Odpovědět | Sbalit | Link | Blokovat | Admin
Zdravim Ovladani mySQL z konzoly ma sice sve kouzlo, ale kdyz se odkudkoliv otevru http://server/phpmyadmin a tam naklikam co potrebuju, prijde mi to jeste kouzelnejsi. Velkou vyhodu mysql vidim prave v existenci phpmyadmina, je to opravdu propracovany k dokonalosti. Pouzivam ho dost casto. Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
28.3.2003 20:31 God.zilla
Rozbalit Rozbalit vše proc tak tvrde k phpMyAdmin?
no, existuje i PostgreSQLAdmin, a myslím že by se našlo něco ekvivalentního pro všechny používané databáze.. ale je pravda, že phpMySQLAdmin je super.. :-)
28.3.2003 10:55 kocour_easy
Rozbalit Rozbalit vše Pripominka k rychlosti
Odpovědět | Sbalit | Link | Blokovat | Admin
"Další velmi důležitá vlastnost je rychlost. MySQL je téměř ve všech kategoriích nejrychlejší." --> Oproti komu??? Jinym sql?? Myslim zkuste se podivat na www.sqlite.org, kde popisuji, ze je v nekterych ohledech rychlejsi nez Mysql.
28.3.2003 11:45 pf
Rozbalit Rozbalit vše Pripominka k rychlosti
Souhlasim s touhle narazkou ("MySQL je nejrychlejsi"). V jakych kategoriich? sqlite je jeste rychlejsi, ale na druhou stranu je to knihovna! Aplikace primo vola kod pro praci s databazi, nekomunikuje se pres sit, databaze nezna zadne datove typy (vsechno se uklada jako retezec) atd. Bodejt by to rychlejsi nebylo.
28.3.2003 13:13 David Olszyński
Rozbalit Rozbalit vše Pripominka k rychlosti
Stejne by se dalo argumentovat i proti mysql. Oproti tem "databazovitejsim" databazim je mysql jen lehce rozsirena hashovaci tabulka, takze bodejt by nebyla rychlejsi (jakoze v nekterych pripadech ani rychlejsi neni).
31.3.2003 16:40 tajtrlik
Rozbalit Rozbalit vše Pripominka k rychlosti
rychlejsia ... do kolko riadkov v tabulke. No na web je fajn. Podporuje mysql aj tranzakcie?
2.4.2003 20:01 JM
Rozbalit Rozbalit vše Pripominka k rychlosti
podporuje - s jinym typem tabulky, ale to uz pak neni tak rychle :-)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.