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

Z przedstawionych tabel Klienci i Uslugi należy wybrać jedynie imiona klientów oraz ceny odpowiadających im usług, które są tańsze niż 50 zł. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania z kwalifikacji INF.03
A.
SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = uslugi_id;
B.
SELECT imie, cena FROM klienci, uslugi WHERE cena > 50;
C.
SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena < 50;
D.
SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = klienci.id WHERE cena < 50;
Poprawna kwerenda to: SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena < 50;. Polecenie SELECT wskazuje tylko potrzebne kolumny: imie z tabeli klienci oraz cena z tabeli uslugi. JOIN łączy rekord klienta z rekordem usługi zgodnie z relacją widoczną w strukturze tabel: klienci.uslugi_id jest kluczem obcym wskazującym na uslugi.id. Warunek WHERE cena < 50 ogranicza wynik do usług tańszych niż 50 zł. Do zapamiętania: przy łączeniu tabel warunek ON opisuje powiązanie między tabelami, a WHERE filtruje już połączone dane. W praktyce brak jednego z tych elementów często daje poprawną składnię, ale niepoprawny wynik.
W tym zadaniu trzeba jednocześnie połączyć tabele zgodnie z kluczem obcym i odfiltrować ceny mniejsze niż 50. Zapytanie SELECT imie, cena FROM klienci, uslugi WHERE cena > 50; używa dwóch tabel bez warunku połączenia, więc prowadzi do niekontrolowanego zestawienia rekordów, a dodatkowo wybiera usługi droższe niż 50. Zapytanie SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = uslugi_id; poprawnie wykorzystuje relację uslugi.id = uslugi_id, ale nie zawiera warunku WHERE cena < 50, więc zwróci także droższe usługi. Zapytanie SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = klienci.id WHERE cena < 50; filtruje cenę, lecz łączy tabele po niewłaściwych kolumnach - identyfikator klienta nie jest identyfikatorem usługi. Typowy błąd polega na myleniu klucza głównego tabeli klienci z kluczem obcym uslugi_id. Poprawne polecenie to: SELECT imie, cena FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena < 50;.

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.