Filtrování dat na základě hodnoty data je běžným jevem při práci s databázemi. Může nám například umožnit načíst data z konkrétního časového rámce, agregovat výsledky na základě daného data, identifikovat vzory trendů v čase a další operace související s časem.
Je to proto důležitá dovednost pro každého vývojáře databází. SQL nám poskytuje různé nástroje pro filtrování dat v rámci dané datové sady.
Přidejte se k nám v tomto příspěvku, když prozkoumáme různé metody a techniky, které můžeme použít k filtrování dat ve světě SQL.
Předpoklady:
Než se vrhneme na praktické příklady a aplikace, dovolte nám rozebrat, co k tomu potřebujete.
V tomto příspěvku se pokusíme dodržet metody, které lze použít pro téměř všechny databáze SQL. Pro demonstrační účely však používáme MySQL verze 8 se vzorovou databází Sakila.
Můžete si však stáhnout a používat libovolný datový soubor, který si přejete. Určitě vám ukážeme, zda poskytovaná metoda může fungovat v jiných databázích, a poskytneme alternativu, pokud existuje.
Filtrujte konkrétní datum
Nejzákladnější operace filtrování data je tam, kde potřebujeme získat záznam nebo více záznamů pro určité datum.
V takovém případě můžeme použít klauzuli WHERE následovanou sloupcem data a skutečnou hodnotou data, kterou chceme načíst.
Předpokládejme například, že chceme zjistit záznamy o pronájmu, ke kterým došlo 24. května 2005. Můžeme spustit dotaz následovně:
VYBRAT *Z výpůjčky
KDE datum_pronájmu = '2005-05-24 23:03:39' ;
V tomto případě poskytujeme datum, které chceme filtrovat jako hodnotu časového razítka. Je to proto, že sloupec „datum_nájmu“ ukládá hodnoty jako časové razítko.
Filtrujte časové období
Druhou běžnou operací je filtrování dat na základě konkrétního období. Předpokládejme například, že chceme získat pronájmy, ke kterým došlo mezi květnem 2005 a červnem 2005.
Dotaz můžeme spustit následovně:
VYBRAT*
Z
pronájem
KDE
pronájem_datum MEZI '2005-04-01 00:00:00' A '2005-06-01 00:00:00' ;
V tomto případě použijeme operátor AND ke spojení dvou hodnot. Klauzule WHERE se používá tam, kde jakákoli hodnota ze sloupce „datum_nájmu“ musí být mezi těmito dvěma rozsahy.
Příklad výstupu je následující:
Filtrovat komponentu Datum
V jiných případech můžeme místo použití rozsahu dat pomocí doslovných hodnot extrahovat konkrétní komponenty data z hodnoty a na základě toho filtrovat.
Například místo zadání od 2005-04-01 a 2005-06-01 můžeme extrahovat měsíc květen a filtrovat všechna data, která jsou v daném měsíci.
V MySQL můžeme k dosažení tohoto cíle použít funkci, jako je funkce MONTH(), jak ukazuje následující příklad:
VYBRAT*
Z
pronájem
KDE
MĚSÍC ( datum_pronájmu ) = 5 ;
V tomto případě MONTH(datum_nájmu) extrahuje část měsíce z data. Potom můžeme tuto hodnotu použít k filtrování, kde je hodnota rovna 5, květen.
Závěr
V tomto tutoriálu jsme se dozvěděli o jedné z nejzákladnějších a nejběžnějších úloh v SQL, kde filtrujeme data na základě hodnoty data. Naučili jsme se, jak extrahovat různé součásti z data a používat je k filtrování data a další.