Bazy danych i SQL: karta pracy z odpowiedziami

Darmowa karta pracy do druku – Bazy danych i SQL: 8 zadań od łatwych do poziomu egzaminu, z kluczem odpowiedzi. Wydrukuj ją lub zapisz jako PDF.

Dla nauczycieli: można bezpłatnie drukować, kopiować i używać na zajęciach. Każdy nowy arkusz ma nowe wartości i własny klucz odpowiedzi. Będziemy wdzięczni za link do ExamProblems na stronie kursu.

Imię: ____________________   Data: ____________

1.Łatwy

Klucz obcy (foreign key) to:

  1. AKlucz, który jest zawsze zaszyfrowany
  2. BKlucz używany przez zagranicznych użytkowników
  3. CKolumna odwołująca się do klucza głównego innej tabeli
  4. DKolumna, której wartości muszą być unikalne we wszystkich wierszach tabeli
2.Łatwy

INNER JOIN zwraca:

  1. AWszystkie wiersze z lewej tabeli, z wartościami NULL tam, gdzie nie ma dopasowania
  2. BWszystkie wiersze z obu tabel
  3. CWiersze, które nie pasują
  4. DTylko wiersze z pasującymi wartościami w obu tabelach
3.Łatwy

Która instrukcja SQL dodaje nowe wiersze do tabeli?

  1. AUPDATE
  2. BALTER
  3. CINSERT
  4. DSELECT
4.Średni

Tabela ma wiersze, w których col jest NULL. Które wiersze zwraca WHERE col = NULL?

  1. ATylko wiersze, w których col jest NULL, tak jak w IS NULL
  2. BŻadnych wierszy, bo wynik porównania jest nieznany
  3. CWszystkie wiersze tabeli
  4. DBłąd w każdej bazie danych
5.Średni

Tabela przechowuje adres klienta w każdym wierszu zamówienia. Zmiana adresu w jednym wierszu, ale nie w pozostałych, to przykład:

  1. AAnomalii usuwania
  2. BOdczytu fantomowego
  3. CAnomalii aktualizacji
  4. DAnomalii wstawiania
6.Średni

Które zapytanie wypisuje klientów, którzy nigdy nie złożyli zamówienia?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
7.Trudny

Zapytanie FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' nieoczekiwanie pomija klientów bez zamówień. Dlaczego?

  1. ALEFT JOIN nigdy nie zachowuje niedopasowanych wierszy
  2. BZłączenie powinno używać USING zamiast ON
  3. Cstatus jest słowem zastrzeżonym
  4. DWarunek WHERE na o odrzuca wiersze wypełnione NULL, zamieniając złączenie w wewnętrzne
8.Trudny

Czym jest indeks pokrywający (covering index) dla zapytania?

  1. AIndeksem zawierającym wszystkie kolumny potrzebne zapytaniu, dzięki czemu nie trzeba czytać samej tabeli
  2. BIndeksem wyłącznie na kluczu głównym
  3. CIndeksem obejmującym każdą kolumnę każdej tabeli
  4. DIndeksem przebudowywanym co noc

Klucz odpowiedzi

  1. 1. C · Kolumna odwołująca się do klucza głównego innej tabeli
  2. 2. D · Tylko wiersze z pasującymi wartościami w obu tabelach
  3. 3. C · INSERT
  4. 4. B · Żadnych wierszy, bo wynik porównania jest nieznany
  5. 5. C · Anomalii aktualizacji
  6. 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. D · Warunek WHERE na o odrzuca wiersze wypełnione NULL, zamieniając złączenie w wewnętrzne
  8. 8. A · Indeksem zawierającym wszystkie kolumny potrzebne zapytaniu, dzięki czemu nie trzeba czytać samej tabeli

Pełne rozwiązania krok po kroku: ćwicz ten temat na examproblems.com.