Przejdź do treści głównej
INF.03Pytanie #787 z 1558sql-zapytania-dml-dql

W tabeli mieszkancy z polami id, imie, nazwisko, ulica, numer, czynsz (wartość całkowita) należy wybrać dane osób mieszkających na ulicy Mickiewicza pod numerami 71, 72, 80, których czynsz jest niższy niż 1000 zł. Klauzula WHERE do zapytania będzie miała postać

Opcje odpowiedzi:
A
WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
B
WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
C
WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
Prawidłowa
D
WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: C (WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000)

Zadanie wymaga sformułowania warunku filtrującego WHERE dla zapytania SQL, który musi jednocześnie spełniać trzy kryteria podane w opisie zadania:

  • Ulica musi być dokładnie równa 'Mickiewicza' (ulica = 'Mickiewicza').
  • Numery domów muszą należeć do zbioru wartości: 71, 72, 80. Najbardziej optymalnym i czytelnym zapisem dla zbioru wartości jest użycie operatora IN, czyli numer IN (71, 72, 80).
  • Czynsz musi być niższy niż 1000 zł (czynsz < 1000).

Ponieważ wszystkie te trzy warunki muszą być spełnione równocześnie dla każdego wyszukanego mieszkańca, poszczególne wyrażenia należy połączyć operatorem koniunkcji logicznej AND. Poprawna klauzula ma postać: WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000.

Odpowiedź A używa operatorów OR, co spowodowałoby wybranie osób mieszkających na dowolnej innej ulicy, o ile ich czynsz byłby niski lub numer domu pasowałby do zbioru.

Odpowiedź B zawiera błąd w hierarchii operatorów logicznych (brak nawiasów przy połączeniu AND i OR), co zniekształca intencję zapytania.

Odpowiedź D definiuje przedział numerów numer > 70 AND numer < 81, co obejmowałoby również numery niewymienione w zadaniu (np. 73, 74, 75 itd.), a dodatkowo wprowadza błędny operator OR przed warunkiem czynszu.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: Zapytanie WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czyn zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.
  • B: Zapytanie WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czy zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.
  • D: Zapytanie WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.

Chcesz poćwiczyć całą kwalifikację INF.03?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

Podobne pytania z działu „Sql zapytania dml dql”

Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 158 pytań z tego działu.