KWALIFIKACJA INF3 - STYCZEŃ 2015

PYTANIE NR 20.
Aby policzyć wszystkie wiersze tabeli Koty należy użyć polecenia
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
COUNT(*) zwraca jedną wartość: liczbę wszystkich wierszy spełniających warunek zapytania. Dla całej tabeli używa się więc zapytania SELECT COUNT(*) FROM Koty. Pozostałe propozycje są niepoprawne składniowo lub nie gwarantują poprawnego policzenia wszystkich rekordów w tabeli.

Pełne wyjaśnienie:

Do policzenia liczby wszystkich wierszy (rekordów) w tabeli stosuje się funkcję agregującą COUNT. Zapytanie:

SELECT COUNT(*) FROM Koty

zwraca jedną liczbę – łączną liczbę rekordów znajdujących się w tabeli Koty. Gwiazdka w COUNT(*) oznacza zliczanie wierszy, a nie wartości konkretnej kolumny, dzięki czemu wynik jest interpretowany jako liczba rekordów.

Dlaczego pozostałe odpowiedzi są błędne?

  • SELECT ROWNUM() FROM Koty – to nie jest uniwersalna i poprawna składnia funkcji zliczającej wiersze; w typowym ujęciu nie zwraca liczby wszystkich rekordów, tylko (ewentualnie) numerację wierszy w wyniku.
  • SELECT COUNT(Koty) AS ROWNUM – brak części FROM i błędne użycie nazwy tabeli jako argumentu funkcji agregującej (zwykle COUNT przyjmuje kolumnę lub *).
  • SELECT COUNT(ROWNUM) FROM Koty – użycie ROWNUM zależy od dialektu; ponadto zliczanie takiego wyrażenia nie jest standardowym, przenośnym sposobem liczenia rekordów. Najbardziej jednoznacznym i powszechnie stosowanym rozwiązaniem jest COUNT(*).

Wskazówka egzaminacyjna: gdy pytanie brzmi "policz wszystkie wiersze tabeli", w praktyce prawie zawsze oczekiwane jest COUNT(*). Jeśli pojawia się filtr WHERE, COUNT(*) policzy tylko wiersze spełniające warunek.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zwraca jedną wartość liczbową: łączną liczbę wierszy (rekordów) w tabeli Koty. To typowy sposób na szybkie policzenie, ile wpisów znajduje się w tabeli, bez wypisywania samych rekordów.
Dodaj filtr WHERE, np. SELECT COUNT(*) FROM Koty WHERE .... Wynik to liczba rekordów spełniających warunek. To częsty schemat w aplikacjach webowych do liczenia elementów w danej kategorii lub statusie.
Bo COUNT zlicza wiersze na podstawie * albo wartości kolumny/wyrażenia, a nie na podstawie nazwy tabeli. Nazwa tabeli nie jest zwykle poprawnym argumentem funkcji agregującej, więc takie zapytanie bywa błędne składniowo.
Gwiazdka w COUNT(*) oznacza "zlicz wiersze", czyli policz rekordy niezależnie od tego, czy w poszczególnych kolumnach są wartości puste. Wynikiem jest jedna liczba odpowiadająca liczbie wierszy w zbiorze danych.
Nie zawsze. COUNT(kolumna) zlicza tylko te wiersze, w których dana kolumna nie ma wartości NULL. COUNT(*) zlicza wszystkie wiersze. Na egzaminie to częsta pułapka: różnica wychodzi przy brakach danych.
Użyj aliasu, np. SELECT COUNT(*) AS liczba FROM Koty. Alias ułatwia odczyt wyniku w narzędziach bazodanowych i w kodzie aplikacji (np. w PHP/JS), gdzie odwołujesz się do nazwy pola w rezultacie.
Bo ROWNUM (lub podobne mechanizmy) zależy od konkretnego silnika bazy i zwykle służy do numerowania wierszy wyniku, a nie do przenośnego zliczania rekordów. Najbezpieczniejszy, standardowy nawyk egzaminacyjny to COUNT(*).
Stosuje się zliczanie z DISTINCT, np. COUNT(DISTINCT kolumna). To inny przypadek niż liczenie wierszy tabeli. Na egzaminie warto rozróżniać: "ile rekordów" (COUNT(*)) vs "ile unikalnych wartości".
W bardzo dużych tabelach liczenie wszystkich wierszy może wymagać skanowania danych lub indeksu, więc bywa kosztowne. W aplikacjach webowych często liczy się rekordy z warunkiem, korzysta z indeksów lub używa mechanizmów optymalizacji specyficznych dla silnika.
Najczęstsze to: pomylenie COUNT(*) z COUNT(kolumna), brak FROM w zapytaniu, błędne użycie nazwy tabeli jako argumentu COUNT oraz mylenie z numeracją wierszy. Warto pamiętać: liczba rekordów = COUNT(*).
info

Statystycznie 70% uczniów zna prawidłową odpowiedź. średnio łatwe

Eksperci podkreślają: "COUNT(*) zwraca jedną wartość: liczbę wszystkich wierszy spełniających warunek zapytania."

Źródła:

  • PostgreSQL Documentation: Aggregate Functions (COUNT) – https://www.postgresql.org/docs/current/functions-aggregate.html (dostęp: 2026-02-16)
  • MySQL 8.0 Reference Manual: Aggregate (GROUP BY) Functions and Modifiers (COUNT) – https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html (dostęp: 2026-02-16)
  • SQLite Documentation: Core Functions (count) – https://www.sqlite.org/lang_aggfunc.html (dostęp: 2026-02-16)

Materiały:

  • Dokumentacja wybranego silnika bazy danych: sekcja o funkcjach agregujących
  • Materiały kursowe z podstaw SQL (SELECT, FROM, WHERE, GROUP BY)
  • Ćwiczenia praktyczne: zapytania COUNT(*) na różnych tabelach i z filtrami WHERE

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego