Zadanie 3.
Należy przeprowaszić eksperyment w celu określenia pierszeństwa w przypadku zapytania zawierającego trzy warunki połączone ze sobą za pomocą AND i OR. Czy pierszeństwo ma klauzula AND lub OR, czy może obowiązuje zasada “od lewej strony do prawej”?
Należy wykonać nastepujące zapytanie
SELECT *
FROM Student
WHERE stnr < 100 AND kier = `INFO' OR kier = `KSIE'
W dalszej kolejności należy zastosować dwa poniższe zapytania i stwierdzić, które wygeneruje taki sam wynik jak poprzednie zapytanie pozbawione nawiasów okragłych.
Odp. Podczas stosowania klauzuli AND i OR nie obowiązuje pierszeństwo dla żadnej z nich - zostaną one wykonane w kolejności w jakiej zostały one zapisane (zasada “od lewej strony do prawej”). Pierszeństwo maja jedynie klauzule zawarte w nawiasach (sa one wykonywane w pierwszej kolejności a po nich pozostale)
To zapytanie wygeneruje identyczny wynik co wersja bez nawiasów okragłych (osoby do numeru 100 z kierunku INFORMATYKA i wszyscy z KSIĘGOWOŚCI)
SELECT *
FROM Student
WHERE ( stnr < 100 AND kier = `INFO' ) OR kier = `KSIE'
SELECT *
FROM Student
WHERE stnr < 100 AND ( kier = `INFO' OR kier = `KSIE' )
Jeżeli zamienimy w kolejności OR z AND (jak poniżej) wynik bedzie nastepujący - tabela wyświetli osoby do numeru 100 z kierunków INFORMATYKA I KSIĘGOWOŚĆ
SELECT *
FROM Student
WHERE stnr < 100 OR kier = `INFO' AND kier = `KSIE'