SQL

Databázové servery bohužel (nebo spíše bohudík;) nejsou aladinovou lampou, a tak je nelze ovládat hlasem. Místo toho se používá jazyk SQL (Structured Query Language), kterým lze kompletně manipulovat s tabulkami v databázi a v nich uloženými daty.

Syntaxe SQL není nijak složitá, je zvolena tak, aby připomínala anglický jazyk. Pokud si budete chtít sami SQL vyzkoušet, je nejlepší pořídit si nějaký databázový server. Existuje jich samozřejmě mnoho, liší se jak svými kvalitami, tak i cenou. Pro webové a wapové aplikace se velice často používá MySQL, které je velmi rychlé a je k dispozici zdarma pro mnoho platforem (včetně Windows a Linuxu). Stáhnout si jej můžete z adresy http://www.mysql.com. Instalace databáze na vlastním počítači je výhodná zejména pro ladění aplikací. Pro ostrý provoz aplikace pak samozřejmě využijeme databázový server, který běží u web-hostingové firmy.

Vytvoření tabulky

Vraťme se však k jazyku SQL. První příkaz, se kterým se musíme seznámit, je příkaz pro vytvoření tabulky. Pro vytvoření naší tabulky s telefony by vypadal následovně:

CREATE TABLE Telefony (
  Id      INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Jmeno   VARCHAR(40),
  Telefon VARCHAR(14),
  Email   VARCHAR(60))

Za klíčovým slovem CREATE TABLE se udává název tabulky. V závorkách pak následuje seznam položek. U každé položky se udává její název a typ. Např. typ INT odpovídá celému číslu a VARCHAR textovému řetězci o určité maximální délce. U položky Id jsme ještě určili, že se jedná o primární klíč, který se bude automaticky generovat pro nově vkládané záznamy.

Nejlepší je si hned všechny příkazy zkoušet. Předtím samozřejmě musíme mít nainstalováno MySQL. Příkazy můžeme serveru zasílat pomocí programu mysql, který je součástí distribuce MySQL. Po spuštění programu se příkazem use test přepneme do testovací databáze a pak již můžeme napsat příkaz pro vytvoření tabulky (viz obrázek 2). Za každým příkazem musíme uvést středník. Ten signalizuje, že příkaz je již zadán celý, a může se odeslat databázovému serveru ke zpracování.

Obrázek 2. Práce s řádkovým klientem MySQL

Někteří poskytovatelé web-hostingu neumožňují vzdálený přístup k jejich databázi. Za chvíli si proto ukážeme, jak i v takovém případě odesílat SQL příkazy serveru a vytvořit si databázovou tabulku.

Vkládání záznamů

Pro vložení nového záznamu do tabulky je v SQL příkaz INSERT INTO. Vložení nového záznamu do tabulky s telefony můžeme provést velice jednoduše:

INSERT INTO Telefony (Jmeno, Telefon, Email)
VALUES ('Jan Novák', '+420212131415', 'novak@email.cz')

Za názvem tabulky se ve složených závorkách uvádí seznam položek, které chceme zadávat. Za klíčovým slovem VALUES se v závorkách zadávají již přímo hodnoty položek v novém záznamu. Textové řetězce je přitom nutné uzavírat do apostrofů.

Výběr dat z tabulky

Databáze by samozřejmě neměla pracovat jen jako černá díra, ve které se ztrácejí naše cenné informace. K výběru dat z tabulky slouží příkaz SELECT, který má mnoho variant. Jeho nejjednodušší tvar slouží k výběru však dat z tabulky:

SELECT * FROM Telefony

Vrácené záznamy lze omezit podmínkou. Ta se píše za klíčové slovo WHERE. Kdybychom například chtěli zjistit údaje o Janu Novákovi, můžeme použít následující SQL příkaz:

SELECT * FROM Telefony WHERE Jmeno LIKE 'Jan Novák'

V řetězci, který v dané položce vyhledáváme, můžeme použít i zástupné znaky. Např. znak `%' zastupuje libovolnou sekvenci znaků. Chceme-li najít například všechny, kteří mají ve svém jméně kdekoliv písmeno `Ch', můžeme použít následující variantu příkazu.

SELECT * FROM Telefony WHERE Jmeno LIKE '%Ch%'

Pokud chceme výsledky seřadit můžeme použít klíčovém slovo ORDER BY a napsat za něj, podle které položky se má výstup uspořádat.

SELECT * FROM Telefony WHERE Jmeno LIKE '%Ch%'
ORDER BY Email

Příkaz SELECT a jazyk SQL má ještě mnoho dalších možností, my je bohužel v omezeném prostoru článku nemůžeme probrat.

© Jiří Kosek 2000-2001