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

Fragment kwerendy SQL zaprezentowany w ramce ma na celu uzyskanie

SELECT COUNT(*) FROM ... WHERE wartosc IS NULL
A. liczby wierszy, w których pole wartosc jest wypełnione.
Źle. Wypełnione pola wybrałby warunek IS NOT NULL, a nie IS NULL.
B. liczby wierszy, w których pole wartosc jest puste.
Dobrze. COUNT(*) liczy wiersze, które spełniają warunek wartosc IS NULL, czyli z pustym polem.
C. sumy wartości w kolumnie wartosc.
Źle. Sumę liczy funkcja SUM(), a tu wybierane są wiersze bez wartości.
D. liczby kolumn tabeli.
Źle. COUNT zwraca liczbę wierszy, a nie liczbę kolumn tabeli.

Funkcja COUNT(*) liczy wszystkie wiersze, które przeszły przez warunek WHERE. Warunek IS NULL przepuszcza tylko wiersze, w których w polu wartosc nie wpisano żadnej wartości. Wynikiem jest więc jedna liczba: ile rekordów ma puste pole wartosc. Brak wartości sprawdza się wyłącznie operatorem IS NULL albo IS NOT NULL - porównanie = NULL nigdy nie jest prawdziwe, bo NULL oznacza wartość nieznaną. Takie zapytanie przydaje się do kontroli danych, np. do policzenia klientów bez numeru telefonu. Do zapamiętania: COUNT(*) liczy wiersze, a COUNT(wartosc) pomija puste pola. Warunek można łączyć z innymi przez AND.

Błędne odpowiedzi biorą się z pomylenia funkcji albo warunku. COUNT nie liczy kolumn - zawsze zwraca liczbę wierszy wyniku; liczbę kolumn opisuje struktura tabeli, a nie dane. Suma wartości wymagałaby funkcji SUM(wartosc), a tu w dodatku wybrano wiersze bez wartości, więc nie byłoby czego sumować. Odwrotny warunek, IS NOT NULL, policzyłby rekordy z wypełnionym polem - ten sam wynik dałoby COUNT(wartosc) bez klauzuli WHERE, bo funkcja z nazwą kolumny pomija puste pola. Słowo IS w warunku zostawia wyłącznie wiersze, w których pole wartosc jest puste, i to je liczy COUNT(*). Uwaga na pułapkę: porównanie ze znakiem równości i słowem NULL nie zadziała i zwróci zero wierszy, bo żadne porównanie z wartością nieznaną nie jest prawdziwe. Dlatego brak wartości sprawdza się wyłącznie słowami IS NULL.

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.