1.Łatwy
Klucz obcy (foreign key) to:
- AKlucz, który jest zawsze zaszyfrowany
- BKlucz używany przez zagranicznych użytkowników
- CKolumna odwołująca się do klucza głównego innej tabeli
- DKolumna, której wartości muszą być unikalne we wszystkich wierszach tabeli
2.Łatwy
INNER JOIN zwraca:
- AWszystkie wiersze z lewej tabeli, z wartościami NULL tam, gdzie nie ma dopasowania
- BWszystkie wiersze z obu tabel
- CWiersze, które nie pasują
- DTylko wiersze z pasującymi wartościami w obu tabelach
3.Łatwy
Która instrukcja SQL dodaje nowe wiersze do tabeli?
- AUPDATE
- BALTER
- CINSERT
- DSELECT
4.Średni
Tabela ma wiersze, w których col jest NULL. Które wiersze zwraca WHERE col = NULL?
- ATylko wiersze, w których col jest NULL, tak jak w IS NULL
- BŻadnych wierszy, bo wynik porównania jest nieznany
- CWszystkie wiersze tabeli
- 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:
- AAnomalii usuwania
- BOdczytu fantomowego
- CAnomalii aktualizacji
- DAnomalii wstawiania
6.Średni
Które zapytanie wypisuje klientów, którzy nigdy nie złożyli zamówienia?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
- CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
- 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?
- ALEFT JOIN nigdy nie zachowuje niedopasowanych wierszy
- BZłączenie powinno używać USING zamiast ON
- Cstatus jest słowem zastrzeżonym
- 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?
- AIndeksem zawierającym wszystkie kolumny potrzebne zapytaniu, dzięki czemu nie trzeba czytać samej tabeli
- BIndeksem wyłącznie na kluczu głównym
- CIndeksem obejmującym każdą kolumnę każdej tabeli
- DIndeksem przebudowywanym co noc
Klucz odpowiedzi
- 1. C · Kolumna odwołująca się do klucza głównego innej tabeli
- 2. D · Tylko wiersze z pasującymi wartościami w obu tabelach
- 3. C · INSERT
- 4. B · Żadnych wierszy, bo wynik porównania jest nieznany
- 5. C · Anomalii aktualizacji
- 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 7. D · Warunek WHERE na o odrzuca wiersze wypełnione NULL, zamieniając złączenie w wewnętrzne
- 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.