Teorie o datových typech již bylo dost na to, abychom se dnes
pustili do něčeho praktičtějšího. V tomto díle seriálu se tedy
zamyslíme nad příkazy jazyka pro definici databázových objektů (DDL) a
hned
si nějaké vytvoříme.
Rychlé připojení k MySQL
Protože se chceme připojit k MySQL nějakým jednotným způsobem,
použijeme řádkového klienta. Tomu bude ještě věnován celý díl seriálu,
takže dnes jen to nejpodstatnější. Abyste se mohli úspěšně připojit k
MySQL, budete potřebovat:
- vědět, že řádkový klient MySql se spouští příkazem mysql
(narozdíl od serveru, jež startuje příkaz mysqld)
- vědět, jaký je název hostitele serveru, a znát svoje uživatelské
jméno a heslo pro přístup
- vědět, že pokud se chcete připojit k nějaké vzdálené databázi,
lze zadat programu mysql údaje pomocí přepínačů -h, -u a -p (hostitel,
uživatel, heslo)
Nějakým způsobem byste tedy měli být schopni se přihlásit spuštěním
příkazu mysql; objevit by se mělo něco ve smyslu:
mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17 to server version: 4.1.10a-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Program mysql teď čeká na zadání uživatele; pro nás je ještě
důležité vědět, že jednotlivé příkazy se v programu mysql oddělují
středníkem (;). Takže, vzhůru do světa DDL.
Založení nové databáze
První příkaz, který se naučíme, je příkaz pro tvorbu databáze.
(Možná bude pro někoho užitečné podívat se do dílu o
terminologii). Když se připojíte k databázovému serveru, mohou
totiž nastat
v zásadě tři situace:
- Máte povolení pracovat s databází, ale musíte si ji nejprve
vytvořit
- Máte povolení pracovat s právě jednou databází, a již ji máte
vytvořenu (typické u webhostingů)
- Jste administrátor nebo se jedná o instalaci na vývojářský stroj
- a pak si většinou můžete vytvořit databází, kolik chcete.
Novou databázi vytvoříte pomocí příkazu CREATE DATABASE. Viz příklad
níže:
create database test;
V názvu databáze mysql nerozlišuje mezi malými a velkými písmeny,
POKUD BEŽÍ SERVER na WINDOWS. Jestliže poběží na Linuxu, bude na tom
záležet a databáze Test bude
moci existovat vedle databáze test.
Zapamatujete si to, když si uvědomíte, že každá databáze je
v MySQL reprezentována adresářem. Řídící příkazy naproti tomu mohou být
na
všech systémech libovolnou kombinací malých a velkých písmen.
Ponz.: Kromě toho, že v Linuxu
jdou vytvořit databáze, lišící se pouze velikostí písmen v názvech,
byste ještě měli vědět, že se to moc nepoužívá. Například hodně
vývojářů dává přednost tomu, pojmenovávat všechny objekty malými
písmeny.
Jestliže právě zakládaná databáze již existuje, příkaz selže:
mysql> create
database test;
ERROR 1007 (HY000): Can't create database 'test'; database exists
Tomu však lze zabránit použitím klauzule IF NOT EXISTS, jak vidíte
níže.
create database if not
exists test;
MySQL používá rozšíření IF NOT EXISTS k potlačení chybových hlášení
celkem často. Není to standardní, ale dá se na to zvyknout. Další věc,
kterou byste měli vědět je ta, že příkaz CREATE DATABASE může volitelně
přijímat pokyn týkající se znakové sady a způsobu řazení, které se v
nově vytvořené databázi budou uplatňovat:
create database latin
character set latin2 collate latin2_czech_cs;
Názvy znakových sad a způsobů řazení si samozřejmě nemůžete
vymyslet, musíte je převzít z těch, které MySQL podporuje.
Jak poznáte, že nová databáze byla skutečně založena? MySQL má
příkaz:
show databases;
který vám všechny databáze na daném serveru vypíše. Konečně, pokud
se budete chtít k dané databázi na serveru připojit, slouží k tomu
syntaxe:
use test;
A ještě malá poznámka: Řádkový klient mysql podporuje zadání více
příkazů najednou, takže následující systaxe je platná:
create database priklad;
use priklad;[enter]
Zrušení databáze
Stejně, jako lze databázi založit, lze ji rovněž zrušit. Slouží k
tomu příkaz DROP DATABASE:
drop database [if
exists] test;
Jak ovšem nejspíš tušíte, zruší to nejen databázi samotnou, ale
rovněž všechny tabulky a všechna data v ní. Buďte proto při používání
tohoto příkazu maximálně opatrní - zejména pokud si nejste jisti, že
mažete to, co potřebujete. Kromě obnovy z nějakých existujících záloh
totiž není způsob, jak omylem odstraněnou databázi získat zpět.
Příště si v seriálu ukážeme na to, jak se dají v nově vzniklé
databázi vytvářet tabulky.