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: Programowanie webowe Bazy danych

Tabele: Firmy i Zamowienia są powiązane relacją jeden do wielu. Aby wybrać jedynie id zamówienia wraz z odpowiadającą mu nazwą firmy dla firm, których poziom jest równy 4, należy zastosować polecenie

Ilustracja do pytania z kwalifikacji INF.03
A.
SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy WHERE poziom = 4;
B.
SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.id = Firmy.id WHERE poziom = 4;
C.
SELECT id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.Firmy_id = Firmy.id WHERE poziom = 4;
D.
SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.Firmy_id = Firmy.id WHERE poziom = 4;

Pytanie z egzaminu CKE, styczeń 2022 (arkusz EE.09-SG-22.01).

Poprawne polecenie to: SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.Firmy_id = Firmy.id WHERE poziom = 4;. Relacja jeden do wielu oznacza, że wiele rekordów z tabeli Zamowienia może wskazywać na jeden rekord z tabeli Firmy. Dlatego warunek złączenia musi porównywać klucz obcy Zamowienia.Firmy_id z kluczem głównym Firmy.id. Dopiero po połączeniu tabel warunek WHERE poziom = 4 ogranicza wynik do firm o wskazanym poziomie. W SELECT wybrano tylko identyfikator zamówienia oraz nazwę firmy. Do zapamiętania: przy JOIN używa się składni FROM tabela1 JOIN tabela2 ON tabela1.klucz_obcy = tabela2.klucz_główny WHERE warunek;. Gdy w obu tabelach występuje kolumna id, należy doprecyzować, z której tabeli ma pochodzić.
W tym zadaniu najważniejsze jest poprawne wskazanie kolumn łączących tabele. Polecenie SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy WHERE poziom = 4; zawiera JOIN, ale nie podaje warunku ON, więc nie określa, które rekordy zamówień odpowiadają którym firmom. W zależności od systemu SQL może to prowadzić do błędu składni albo nieprawidłowego złączenia. Polecenie SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.id = Firmy.id WHERE poziom = 4; porównuje identyfikator zamówienia z identyfikatorem firmy, a nie tak opisano relację w tabelach. Taki warunek mógłby dawać przypadkowe dopasowania. Polecenie SELECT id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.Firmy_id = Firmy.id WHERE poziom = 4; ma dobry warunek złączenia, lecz kolumna id jest niejednoznaczna, ponieważ występuje w obu tabelach. Poprawna postać to: SELECT Zamowienia.id, nazwa FROM Zamowienia JOIN Firmy ON Zamowienia.Firmy_id = Firmy.id WHERE poziom = 4;. Typowy błąd polega na myleniu klucza głównego tabeli z kluczem obcym przechowującym powiązanie.

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.