BD-1st-2.4-lab1.tresc-1.1-Slajd35
Selekcja – złożone warunki
Warunki w klauzuli WHERE można w dowolny sposób komplikować używając operatorów AND, OR i NOT. Operator NOT ma najwyższy priorytet. Operator AND ma wyższy priorytet niż operator OR. Aby zmienić priorytet operatorów można użyć nawiasów. Podsumowując, rozbudowana składnia polecenia SELECT wygląda następująco:
SELECT [DISTINCT] {wyrażenie1 [AS alias1], wyrażenie2 [AS alias2],.....} FROM {nazwa relacji}
WHERE warunek_złożony
ORDER BY {wyrażenie3 [ASC|DESC], wyrażenie4 [ASC|DESC], alias1 [ASC|DESC], alias2 [ASC|DESC].....};
Gdzie „warunek_złożony” to:
- warunek_elementarny,
- (warunek_złożony),
- NOT warunek_złożony,
- warunek_złożony OR warunek_złożony,
- warunek_złożony AND warunek_złożony,
a warunek elementarny to:
wyrażenie1 operator_logiczny wyrażenie2.
Przykładowe zapytanie przedstawione na slajdzie:
SELECT nazwisko
FROM pracownicy
WHERE etat=‘PROFESOR’ AND placa_pod > 1000;
można przetłumaczyć zatem następująco: odczytaj z relacji PRACOWNICY wszystkie krotki, dla których wartość atrybutu etat jest równa stałej ‘PROFESOR’, a wartość atrybutu PLACA_POD jest większa od stałej 1000, z odczytanych krotek odczytaj wartości atrybutu NAZWISKO i zwróć je w relacji wynikowej. W praktyce znaczy to: znajdź nazwiska wszystkich profesorów zarabiających powyżej 1000 złotych.