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

Wskaż kwerendę, która z tabeli klienci wybierze jedynie nazwiska trzech najlepszych klientów, czyli takich, którzy na swoim koncie mają najwięcej punktów (pole całkowite punkty)

Opcje odpowiedzi:
A
SELECT nazwisko FROM klienci LIMIT 3;
B
SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3;
Prawidłowa
C
SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3;
D
SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC;
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: B (SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3;)

Zadanie wymaga sformułowania kwerendy SQL, która zwróci nazwiska trzech klientów posiadających największą liczbę punktów.

Aby to osiągnąć, należy wykonać następujące operacje logiczne w zapytaniu:

  • Wybrać kolumnę nazwisko z tabeli klienci za pomocą SELECT nazwisko FROM klienci.
  • Posortować rekordy według wartości w polu punkty malejąco (od największej do najmniejszej), co realizuje klauzula ORDER BY punkty DESC.
  • Ograniczyć liczbę zwracanych wierszy do trzech pierwszych wyników przy użyciu klauzuli LIMIT 3.

Połączenie tych elementów daje zapytanie: SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3;.

Odpowiedź A zwróci nazwiska trzech pierwszych klientów z bazy w losowej lub domyślnej kolejności, bez uwzględnienia liczby ich punktów.

Odpowiedź C sortuje klientów alfabetycznie według nazwiska w sposób malejący (ORDER BY nazwisko DESC), ignorując kryterium liczby punktów.

Odpowiedź D zawiera błędną składnię języka SQL – klauzula LIMIT nie może występować bezpośrednio po słowie kluczowym SELECT w dialekcie MySQL, a dodatkowo sortowanie odbywa się po polu nazwisko, a nie punkty.

Dlaczego pozostałe opcje są nieprawidłowe?

  • A: by to osiągnąć, należy wykonać następujące operacje logiczne w zapytaniu: - Wybrać kolumnę nazwisko z tabeli klienci za pomocą SELECT nazwisko FROM klienci. - Posortować rekordy według wartości w polu punkty malejąco (od największej do najmniejszej), co realizuje klauzula ORDER BY punkty DESC. - Ograniczyć liczbę zwracanych wierszy do trzech pierwszych wyników przy użyciu klauzuli LIMIT 3. Połączenie tych elementów daje zapytanie: SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3;. Odpowiedź A zwróci nazwiska trzech pierwszych klientów z bazy w losowej lub domyślnej kolejności, bez uwzględnienia liczby ich punktów. Odpowiedź C sortuje klientów alfabetycznie według nazwiska w sposób malejący (ORDER BY nazwisko DESC), ignorując kryterium liczby punktów. Odpowiedź D zawiera błędną składnię języka SQL – klauzula LIMIT nie może występować bezpośrednio po słowie kluczowym SELECT w dialekcie MySQL, a dodatkowo sortowanie odbywa się po polu nazwisko, a nie punkty.
  • C: Zapytanie SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3; zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.
  • D: Zapytanie SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC; zawiera nieprawidłową składnię SQL lub zwraca niewłaściwy zestaw danych.

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.