Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Słowa kluczowe: Operatory porównania w SQL SELECT ... WHERE w SQL SELECT w SQL Warunek WHERE oraz operatory AND i OR w SQL

Zdefiniowano bazę danych z tabelą sklepy o polach: nazwa, ulica, miasto, branza. Aby wyszukać nazwy wszystkich sklepów spożywczych zlokalizowanych poza Wrocławiem, należy posłużyć się kwerendą:

A.
SELECT nazwa FROM sklepy WHERE branza='spożywczy' OR miasto<>'Wrocław';
Źle. OR doda też sklepy innych branż spoza Wrocławia i sklepy spożywcze z Wrocławia.
B.
SELECT sklepy FROM nazwa WHERE branza='spożywczy' AND miasto<>'Wrocław';
Źle. Tabela i kolumna są zamienione miejscami, więc kwerenda zwróci błąd.
C.
SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';
Źle. Warunek miasto='Wrocław' wybierze sklepy we Wrocławiu, a nie poza nim.
D.
SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto<>'Wrocław';
Dobrze. AND łączy branżę spożywczą z warunkiem miasto różne od Wrocławia.

Sklepy spoza Wrocławia to te, w których miasto jest różne od Wrocławia. Operator „różne od” zapisuje się w SQL jako <> (w MySQL działa też !=). Warunek branży musi być spełniony jednocześnie, więc oba kryteria łączy AND: branza='spożywczy' AND miasto<>'Wrocław'. Kolumnę do wyświetlenia podaje się po SELECT, a tabelę po FROM - tutaj nazwa i sklepy. Uwaga na wiersze z pustym miastem: wartość NULL nie jest ani równa, ani różna od Wrocławia, więc takie sklepy nie trafią do wyniku. Do zapamiętania: = to równość, <> to nierówność, a kilka warunków jednocześnie łączy AND.

Każda z błędnych kwerend zawodzi w innym miejscu. Wersja z miasto='Wrocław' zwraca sklepy spożywcze we Wrocławiu, czyli dokładnie odwrotność tego, czego wymaga zadanie. Wersja z OR doda do wyniku wszystkie sklepy spoza Wrocławia, także odzieżowe i budowlane, oraz spożywcze z Wrocławia - wystarczy jej spełnienie jednego z warunków. Kwerenda SELECT sklepy FROM nazwa nie wykona się w ogóle, bo zamienia role: sklepy to tabela, a nazwa kolumna. Poprawna kwerenda wybiera kolumnę nazwa z tabeli sklepy i łączy operatorem AND warunek branży z warunkiem miasto<>'Wrocław'. W praktyce każdy warunek łatwo sprawdzić na kilku przykładowych wierszach: sklep spożywczy z Krakowa ma trafić do wyniku, a sklep spożywczy z Wrocławia i sklep odzieżowy z Krakowa - nie. Tylko kwerenda z AND i operatorem różności daje taki wynik.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.