Wspomniane w tytule rozdziału klauzule służą ograniczaniu wyników zapytania (WHERE i HAVING) oraz sortowaniu wyników (ORDER BY). Gdybyśmy np. z używanej wcześniej tabeli sprzedaż chcieli wyświetlić dane tylko o produkcie o "id_prod"=1 nasze zapytanie wyglądało by następująco:
jeśli nasz filtr miałby być założony na pole, które nie zawiera liczb lecz tekst, musielibyśmy argument ująć w apostrofach:
Efekt byłby identyczny. Warto wspomnieć, iż warunki można łączyć w bardziej złożone wykorzystując nawiasy oraz wyrażenia AND (logiczne "i") i OR (logiczne "lub"). Czyli w przypadku gdybyśmy potrzebowali zbudować zapytanie typu: wyświetl rekordy dotyczące sprzedaży "Produkt 1" do klienta "Klient 1" i "Klient 5", wyglądało by ono następująco:
Klauzula ORDER BY oznacza sortowanie wraz z kolejnością pól, wg którego dokonujemy sortowania. Przyjmuje dwa podstawowe argumenty: ASC (rosnąco) oraz DESC (malejąco). Wyświetlimy więc teraz przykładowo naszą tabelę posortowaną jednak wg produktów:
Brak podania argumentu, oznacza domyślnie kolejność rosnącą.
Na koniec trzeba wspomnieć o wyrażeniach typu IS NULL (jest puste) oraz IS NOT NULL (nie jest puste) - można ich użyć także jako warunek filtrujący pola (podając bezpośrednio po nazwie pola użytego w klauzuli WHERE). Pamiętać też należy, iż w warunkach można używać operatorów typu ">", ">=""<", "<=", czy też "<>".