MySQL a pokročilejší vypisování dat

V předcházejícím článku bylo názorně vysvětleno, jakým způsobem z databáze získat uložená data. Pozornější čtenáři si však dozajista uvědomili, že vždy docházelo ke kompletnímu výpisu celé tabulky. V praxi však nejčastěji potřebujeme pracovat s údaji, které odpovídají předem definovaným podmínkám. V následujícím tutoriálu se proto zaměříme právě na tuto oblast. Opět budeme pracovat s databází obsahující informace o zaměstnancích. Uvedené postupy však lze pochopitelně například aplikovat i u webových portálů, které přihlášeným uživatelům spadajícím do různých kategorií zpřístupňují rozmanitý obsah a umožňují provádět odlišné operace.

Rozsah

Představme si nyní společně, že potřebujeme znát jména osob, jejichž mzda převyšuje 15 tisíc korun. Jednoduše proto dotaz vytvořený s pomocí příkazu SELECT obohatíme o příslušnou podmínku, která v našem případě následuje ihned po klíčovém slově WHERE.

SELECT jmeno, prijmeni FROM zamestnanci WHERE plat > 15000;

Jestliže si přejeme určit i maximální strop výplaty, mírně náš dotaz modifikujeme.

SELECT jmeno, prijmeni FROM zamestnanci WHERE plat > 15000 AND plat < 20000;

Po této obměně docílíme výpisu lidí, jejichž finanční odměna se pohybuje mezi 15 a 20 tisíci korunami. Logický výraz AND znamená, že obě uvedené podmínky musí být pravdivé. Nepostačí proto, když dané číslo převyšuje 15 000. Údaje se zobrazí jen tehdy, pokud dojde k naplnění i druhého kritéria. Opak představuje výraz OR.

Mnohdy si můžete přát do intervalu zahrnout i krajní hodnoty. Učiníte tak s pomocí rovnítka umístěného na správné místo.

SELECT jmeno, prijmeni FROM zamestnanci WHERE plat >= 15000 AND plat <= 20000;

Zástupné znaky

V této části budeme pracovníky vybírat na základě jejich jména. Začneme například všemi lidmi, jejichž příjmení začíná na písmeno S.

SELECT * from zamestnanci WHERE prijmeni LIKE ‚S%';

K pochopení tohoto dotazu musíme vysvětlit, jakou funkci zastává znak %. Procento vždy zastupuje libovolný počet znaků. Obdobně se chová i podtržítko „_“. To však nahradí pouze jeden jediný znak. V našem případě se proto zobrazí pouze ty záznamy, které ve sloupci prijmeni začínají právě na písmeno S.

Pakliže nás zajímají všechny nositelky jména Silvie i Sylvie, přistoupíme ke konstrukci tohoto dotazu:

SELECT * from zamestnanci WHERE jmeno LIKE ‚S_lvie';

O Ondřej Směták

Student, který se intenzivně zajímá o oblast IT a to především z pohledu webmastera a programátora GUI aplikací.