Konec teorie. Dnes vytvoříme v našem seriálu první
databázi.
5.4.2005 15:00 | Petr Zajíc |
přečteno 7904×
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.
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:
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.
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:
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]
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.