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

W bazie danych sklepu istnieje tabela artykuly zawierająca pole logiczne nowy. Aby wyświetlić dane tylko tych artykułów, w których pole nowy ma wartość TRUE, należy zastosować kwerendę

A.
SELECT * FROM nowy WHERE artykuly = TRUE;
B.
SELECT nowy FROM artykuly SET TRUE;
C.
SELECT * FROM artykuly WHERE nowy = TRUE;
D.
SELECT * WHERE nowy = TRUE FROM artykuly;
Ta kwerenda ma poprawną składnię SQL: SELECT * FROM artykuly WHERE nowy = TRUE;. Najpierw wybieramy kolumny do wyświetlenia, czyli tutaj * oznacza wszystkie pola rekordu. Potem po słowie FROM wskazujemy tabelę, z której mają być pobrane dane, czyli artykuly. Na końcu warunek WHERE ogranicza wynik tylko do tych rekordów, dla których pole logiczne nowy ma wartość TRUE. W praktyce właśnie tak filtruje się dane w sklepie, np. żeby pokazać na stronie tylko nowe produkty, wyróżnić je etykietą albo zbudować listę promocji dla nowo dodanych artykułów. Moim zdaniem warto zapamiętać ogólny schemat: SELECT kolumny FROM tabela WHERE warunek;. To jest jedna z najczęściej używanych konstrukcji w bazach danych. W wielu systemach SQL można też spotkać zapis WHERE nowy = 1 albo po prostu WHERE nowy, ale zależy to od konkretnego silnika bazy, np. MySQL, PostgreSQL czy SQLite. Dobrą praktyką jest jawne określanie warunku, bo kod jest wtedy czytelniejszy dla innych osób w zespole i mniej podatny na pomyłki.
W tym zadaniu najważniejsze jest zrozumienie kolejności elementów w instrukcji SELECT oraz roli poszczególnych słów kluczowych SQL. Zapytanie pobierające dane z tabeli powinno mieć układ SELECT lista_kolumn FROM nazwa_tabeli WHERE warunek;. Jeżeli warunek dotyczy pola logicznego nowy, to musi on znaleźć się po WHERE, a tabela artykuly musi być wskazana po FROM. Pomieszanie tych miejsc powoduje, że baza danych nie wie, skąd ma pobrać rekordy albo co tak naprawdę ma filtrować. Częsty błąd polega na potraktowaniu SET jako sposobu ustawienia warunku. W SQL słowo SET nie służy do filtrowania wyników w zapytaniu SELECT, tylko najczęściej pojawia się przy UPDATE, np. gdy chcemy zmienić wartość pola w rekordach. To zupełnie inna operacja i trzeba na to uważać, bo w prawdziwej bazie danych pomylenie odczytu z modyfikacją danych może narobić bałaganu. Niepoprawne jest też wpisanie nazwy kolumny w miejscu nazwy tabeli po FROM. FROM zawsze wskazuje źródło danych, czyli tabelę, widok albo podzapytanie, a nie pole logiczne. Tak samo WHERE nie może wystąpić przed FROM, ponieważ najpierw trzeba określić, z jakiej tabeli korzystamy, a dopiero potem zawęzić wynik warunkiem. Z mojego doświadczenia najłatwiej uniknąć takich błędów, jeśli czyta się zapytanie jak zdanie: wybierz wszystkie kolumny z tabeli artykuly, gdzie nowy jest równy TRUE. Wtedy składnia robi się dużo bardziej naturalna.

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.