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

Aby wyświetlić jedynie imię i nazwisko mieszkańców ulicy Polnej, należy zastosować zapytanie

Ilustracja do pytania z kwalifikacji INF.03
A.
SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.id = Adresy.id WHERE ulica = 'Polna';
B.
SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id WHERE ulica = 'Polna';
C.
SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id WHERE nazwisko = 'Polna';
D.
SELECT imie, nazwisko FROM Mieszkancy WHERE ulica = 'Polna';
Poprawne jest zapytanie: SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id WHERE ulica = 'Polna';. Pole SELECT wskazuje tylko kolumny, które mają zostać wyświetlone - imie i nazwisko. Dane o ulicy nie znajdują się w tabeli Mieszkancy, lecz w tabeli Adresy, dlatego potrzebne jest JOIN. Warunek ON łączy klucz obcy Mieszkancy.Adresy_id z kluczem głównym Adresy.id, dzięki czemu każdy mieszkaniec zostaje powiązany ze swoim adresem. WHERE ulica = 'Polna' ogranicza wynik do mieszkańców tej ulicy. Do zapamiętania: gdy filtr dotyczy kolumn z innej tabeli, trzeba najpierw połączyć tabele po relacji klucz obcy - klucz główny.
Błędny wybór najczęściej wynika z pomylenia miejsca przechowywania danych albo złączenia tabel po niewłaściwych kolumnach. Zapytanie SELECT imie, nazwisko FROM Mieszkancy WHERE ulica = 'Polna'; byłoby poprawne tylko wtedy, gdyby kolumna ulica znajdowała się w tabeli Mieszkancy. W pokazanej strukturze ulica należy do tabeli Adresy, więc bez JOIN baza nie ma skąd pobrać kryterium filtrowania. Zapytanie SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.id = Adresy.id WHERE ulica = 'Polna'; wykonuje złączenie, ale używa niewłaściwej pary kolumn - id mieszkańca nie jest kluczem obcym do adresu. Relacja wynika z Mieszkancy.Adresy_id. Zapytanie SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id WHERE nazwisko = 'Polna'; ma dobre złączenie, ale filtruje nazwisko, a nie ulicę. Poprawna postać to: SELECT imie, nazwisko FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id WHERE ulica = 'Polna';.

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.