KWALIFIKACJA INF3 - CZERWIEC 2017

PYTANIE NR 21.
W bazie danych sklepu komputerowego istnieje tabela komputery. Aby zdefiniować raport wyświetlający dla dowolnego zbioru danych tabeli, jedynie pola tabeli dla komputerów, w których jest nie mniej niż 8 GB pamięci, a procesor to Intel, można posłużyć się kwerendą
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne jest zapytanie z warunkiem łączonym AND, ponieważ mają zostać zwrócone wyłącznie rekordy, w których procesor ma wartość 'Intel' oraz pamięć jest nie mniejsza niż 8 (czyli pamiec >= 8). Użycie OR zwróciłoby także komputery spełniające tylko jeden z warunków.

Pełne wyjaśnienie:

Wymaganie brzmi: wyświetlić dane komputerów, dla których spełnione są jednocześnie dwa kryteria: procesor to Intel oraz pamięć RAM ma co najmniej 8 GB. W języku zapytań baz danych taki warunek realizuje się w klauzuli WHERE.

Zapytanie SELECT * FROM komputery WHERE procesor = 'Intel' AND pamiec >= 8; jest poprawne, bo:

  • część procesor = 'Intel' filtruje rekordy po wartości tekstowej w kolumnie procesor,
  • część pamiec >= 8 zapewnia warunek "nie mniej niż 8", czyli 8 lub więcej,
  • operator AND wymusza spełnienie obu kryteriów naraz, więc wynik zawiera tylko komputery zgodne z opisem.

Odpowiedzi z operatorem OR są błędne, ponieważ OR oznacza "albo jedno, albo drugie (lub oba)". To prowadzi do zbyt szerokiego zbioru wyników: zwrócone byłyby także komputery z innym procesorem, jeśli tylko mają ≥8 GB RAM, albo komputery z Intelem, nawet gdy pamięć jest mniejsza niż 8 (w zależności od wariantu).

Warianty z warunkiem pamiec < 8 odwracają sens wymagania "nie mniej niż 8". Taki filtr wybierałby komputery z pamięcią mniejszą niż 8 GB, czyli dokładnie odwrotnie niż w treści zadania.

Wskazówka egzaminacyjna: w treści "… i …"/"… a …" zazwyczaj oznacza koniunkcję (AND), natomiast "… lub …" oznacza alternatywę (OR). Dodatkowo frazę "nie mniej niż" zawsze mapuj na operator >=.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
AND oznacza, że wszystkie połączone warunki muszą być spełnione jednocześnie. Jeśli masz filtr na procesor i filtr na pamięć, AND zwróci tylko te rekordy, które spełniają oba kryteria naraz. To typowy wybór, gdy w treści jest "oraz", "a", "i".
OR oznacza, że wystarczy spełnić co najmniej jeden z warunków. W praktyce poszerza to wynik: rekord przejdzie filtr, jeśli spełnia pierwszy warunek albo drugi (lub oba). W zadaniach egzaminacyjnych OR jest poprawny zwykle wtedy, gdy w treści pojawia się "lub".
"Nie mniej niż 8" oznacza 8 lub więcej, więc w warunku używa się operatora >=, np. pamiec >= 8. Częsty błąd to zapisanie pamiec > 8 (pomija równe 8) albo pamiec < 8 (odwraca sens).
Wartość 'Intel' jest tekstem, więc w SQL zapisuje się ją jako literał tekstowy w apostrofach. Dzięki temu baza rozumie, że porównujesz kolumnę procesor z konkretną wartością tekstową, a nie np. z nazwą kolumny. W niektórych systemach liczy się też wielkość liter (collation).
Tak, SELECT * jest poprawne składniowo i oznacza "zwróć wszystkie kolumny". W praktyce projektowej często wybiera się tylko potrzebne kolumny (wydajność i czytelność), ale w zadaniach o filtrowanie danych SELECT * bywa akceptowany, o ile warunek WHERE jest poprawny.
Najczęstsze pomyłki to: użycie OR zamiast AND, odwrócenie znaku porównania (< zamiast >=), pominięcie równości w "co najmniej", oraz niedopasowanie typu danych (np. porównanie liczby jak tekstu). Warto tłumaczyć treść na logikę: "oba warunki naraz".
Najprościej przetestować każdy warunek osobno, a potem razem: najpierw filtr na procesor, potem filtr na pamięć, a na końcu oba z AND. Jeśli wynik po AND jest większy niż którykolwiek wynik cząstkowy, to znak, że użyto OR lub warunek jest błędnie sformułowany.
AND stosujesz, gdy rekord ma spełniać wszystkie wymagania (np. Intel i ≥8 GB). OR stosujesz, gdy dopuszczasz alternatywy (np. Intel albo AMD). W zadaniach czytaj spójniki: "oraz" zwykle wskazuje AND, "lub" wskazuje OR.
To zależy od narzędzia i trybu pracy. W wielu konsolach i skryptach średnik kończy instrukcję i jest praktycznie wymagany, ale niektóre interfejsy wykonają pojedyncze zapytanie także bez niego. Na egzaminie zwykle akceptuje się obie formy, jeśli składnia jest poprawna.
Dodajesz kolejne warunki, łącząc je AND/OR, a przy mieszaniu operatorów stosujesz nawiasy dla jednoznaczności. Przykład: (procesor='Intel' AND pamiec>=8) AND dysk>=256. Nawiasy chronią przed błędną interpretacją kolejności działań.
info

Około 66% zdających odpowiada poprawnie na to pytanie. średnie

Specjaliści zwracają uwagę: "Poprawne jest zapytanie z warunkiem łączonym AND, ponieważ mają zostać zwrócone wyłącznie rekordy, w których procesor ma wartość 'Intel' oraz pamięć jest nie mniejsza niż 8 (czyli pamiec &gt;= 8)."

Źródła:

  • PostgreSQL Documentation: SELECT — Querying Data, https://www.postgresql.org/docs/current/sql-select.html (dostęp: 2026-03-01)
  • MySQL 8.0 Reference Manual: SELECT Statement, https://dev.mysql.com/doc/refman/8.0/en/select.html (dostęp: 2026-03-01)
  • SQLite Documentation: SELECT, https://www.sqlite.org/lang_select.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja wybranego systemu DB (PostgreSQL/MySQL/SQLite) – rozdział SELECT i WHERE
  • Ćwiczenia z logiki zdań (AND/OR/NOT) w kontekście filtrów bazodanowych
  • Zestawy zadań egzaminacyjnych INF.3 z zakresu baz danych i zapytań

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego