05.11.2012, Vladimír Klaus, navštíveno 7862x
Zatím jsme vždy vybírali všechny záznamy, nyní se je naučíme filtrovat pomocí jedné nebo více podmínek.
Takto získáme všechny zákazníky, jejichž příjmení je Sobota.
SELECT * FROM Zakaznici WHERE Prijmeni = "Sobota"
A takto získáme záznamy objednávek, které byly alespoň za 1000 (korun).
SELECT * FROM Objednavky WHERE Castka >= 1000
A co když potřebujeme všechny objednávky pana Soboty, za které utratil více než 500 korun? Tak to je už složitější úkol (údaje jsou ve dvou tabulkách), o tom si povíme později v části INNER JOIN.
Kombinace podmínek se provádí pomocí logických operátorů (AND, OR apod.). Takto tedy získáme všechny zákazníky z Prahy 8, kteří se jmenují Veselý. AND = a současně, tedy musí platit obě podmínky.
SELECT * FROM Zakaznici WHERE Prijmeni = "Veselý" AND Mesto = "Praha 8"
Takto získáme všechny produkty, které se jmenují „Myš“ nebo „Klávesnice“. OR = nebo, tedy musí platit buď jedna podmínka, nebo druhá, případně obě.
Jak vidíte, výsledkem je pouze jeden záznam, protože produkt, který by se jmenoval „Klávesnice“ vůbec neexistuje.
SELECT * FROM Produkty WHERE Nazev = "Myš" OR Nazev = "Klávesnice"
Malinko složitější je sestavení dotazu, kde je v podmínce uvedeno datum. Ono jde totiž o to, že se v každé zemi zapisuje datum jinak, a proto zde bylo třeba vymyslet a stanovit jednotný zápis bez ohledu na zemi nebo nějaké lokální nastavení. Tímto zápisem je #měsíc/den/rok#.
Poznámka: V jiných databázích je možné (nutné) použít místo znaku # apostrof.
Pomocí tohoto dotazu získáme objednávky, které byly provedeny 14. 9. 2012.
SELECT * FROM Objednavky WHERE Datum = #09/14/2012#
Velmi užitečné je také použití predikátu LIKE, pomocí kterého může podmínku zadat s jistou mírou neurčitosti či volnosti.