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

Baza danych zawiera tabelę ksiazki o polach: tytul, id_autora, data_wypoz, id_czytelnika. Należy przygotować raport książek wypożyczonych przez czytelnika o id równym 5. Wyświetlane są jedynie tytuły książek. Która z kwerend SQL posłuży do stworzenia tego raportu?

A.
SELECT tytul, id_czytelnika FROM ksiazki WHERE id_czytelnika = 5;
B.
SELECT tytul FROM ksiazki WHERE id_czytelnika = 5;
C.
SELECT * FROM ksiazki WHERE id_czytelnika = 5;
D.
SELECT tytul FROM ksiazki;
Zapytanie SELECT tytul FROM ksiazki WHERE id_czytelnika = 5; spełnia dokładnie oba warunki z treści zadania. Część SELECT tytul oznacza, że w wyniku raportu pojawi się tylko jedna kolumna, czyli tytuł książki. Część FROM ksiazki wskazuje tabelę, z której pobieramy dane. Najważniejszy jest warunek WHERE id_czytelnika = 5, bo on ogranicza rekordy tylko do książek wypożyczonych przez czytelnika o identyfikatorze 5. W praktyce to bardzo typowy schemat raportowy: wybieramy konkretne kolumny i filtrujemy rekordy po kluczu lub identyfikatorze. Moim zdaniem to też dobra praktyka, bo nie pobieramy niepotrzebnych danych, takich jak id_autora czy data_wypoz. W systemach produkcyjnych ma to znaczenie dla wydajności, czytelności raportu i ochrony danych. Zamiast SELECT * lepiej świadomie wskazać pola, które są naprawdę potrzebne. W aplikacji internetowej wartość 5 zwykle byłaby parametrem, np. pobranym z formularza, ale sama logika SQL pozostaje taka sama.
W tym zadaniu łatwo pomylić dwie różne rzeczy: wybór kolumn oraz filtrowanie wierszy. Lista po słowie SELECT decyduje o tym, jakie pola zostaną pokazane w wyniku, natomiast warunek WHERE decyduje o tym, które rekordy z tabeli zostaną w ogóle uwzględnione. Jeżeli zapytanie pobiera samo pole tytul, ale nie ma warunku WHERE id_czytelnika = 5, to raport pokaże tytuły książek wszystkich czytelników, a nie tylko wskazanej osoby. Taki wynik może wyglądać poprawnie na pierwszy rzut oka, bo zawiera tytuły, ale merytorycznie raport jest zbyt szeroki. Z kolei zapytanie z warunkiem WHERE, ale z dodatkowymi kolumnami, np. id_czytelnika, nie spełnia wymagania, że wyświetlane są jedynie tytuły książek. W testach i w prawdziwych raportach to jest istotne, bo struktura wyniku też jest częścią zadania. Jeszcze bardziej ogólne SELECT * zwraca wszystkie pola tabeli: tytul, id_autora, data_wypoz i id_czytelnika. To bywa wygodne podczas szybkiego sprawdzania danych, ale w gotowym raporcie jest raczej słabą praktyką. Pobieranie nadmiarowych danych zwiększa transfer, pogarsza czytelność i może ujawniać informacje, które nie powinny być prezentowane użytkownikowi. Poprawne myślenie jest takie: najpierw ustalamy, jakie kolumny mają być widoczne, a potem dodajemy warunek ograniczający rekordy do właściwego czytelnika.

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.