Przejdź do treści głównej
INF.03Pytanie #1459 z 1558sql-zapytania-dml-dql

Która kwerenda SQL poprawnie usunie z tabeli users wszystkie rekordy, których id znajduje się w przedziale od 300 do 1000 (włącznie), a ich login zawiera w dowolnym miejscu ciąg znaków 'tx'?

Opcje odpowiedzi:
A
DELETE FROM users WHERE id BETWEEN 300 AND 1000 OR login LIKE '%tx%';
B
DELETE FROM users WHERE id >= 300 AND id <= 1000 AND login = '%tx%';
C
DELETE FROM users WHERE id BETWEEN 300 AND 1000 AND login LIKE '%tx%';
Prawidłowa
D
REMOVE FROM users WHERE id IN (300, 1000) AND login CONTAINS 'tx';
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: C (DELETE FROM users WHERE id BETWEEN 300 AND 1000 AND login LIKE '%tx%';)

Wskazana opcja DELETE FROM users WHERE id BETWEEN 300 AND 1000 AND login LIKE '%tx%'; jest poprawna. Dokładnie odpowiada zasadom i mechanizmom określonym w specyfikacji języka i technologii bazodanowych dla tego zagadnienia.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: Użycie operatora OR zamiast AND spowodowałoby usunięcie wszystkich rekordów z ID w podanym zakresie ORAZ wszystkich rekordów z 'tx' w loginie, nawet jeśli ich ID byłoby poza zakresem. To znacznie szerszy zakres usuwania niż wymagany.
  • B: Użycie login = '%tx%' jest błędne. Operator = szukałby loginu, który jest dosłownie równy ciągowi znaków "%tx%", a nie loginu, który zawiera 'tx'. Do wyszukiwania wzorców służy operator LIKE.
  • D: Ta kwerenda jest błędna na kilku poziomach: REMOVE nie jest standardowym poleceniem SQL do usuwania wierszy (poprawne jest DELETE). IN (300, 1000) sprawdzałoby tylko ID równe 300 lub 1000, a nie cały zakres. CONTAINS nie jest standardowym operatorem do wyszukiwania wzorców w ten sposób.

Chcesz poćwiczyć całą kwalifikację INF.03?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF03
Reklama

Podobne pytania z działu „Sql zapytania dml dql”

Ten sam obszar materiału z kwalifikacji INF.03. W całej bazie znajdziesz 158 pytań z tego działu.