1.Łatwy
Co robi GROUP BY w zapytaniu?
- AUsuwa wiersze z wartościami NULL
- BSortuje wiersze wyniku alfabetycznie
- CŁączy dwie tabele według ich wspólnych kolumn
- DŁączy wiersze o tych samych wartościach w grupy, by agregaty obliczać dla każdej grupy
2.Łatwy
Które ograniczenie gwarantuje, że kolumna nigdy nie pozostanie pusta (NULL)?
- ADEFAULT
- BUNIQUE
- CNOT NULL
- DCHECK NULL
3.Łatwy
Które słowo kluczowe SQL usuwa zduplikowane wiersze z wyniku?
- ADISTINCT
- BUNIQUE
- CSINGLE
- DDIFFERENT
4.Średni
Które zapytanie zwraca liczbę zamówień dla każdego klienta?
- ASELECT customer_id FROM orders WHERE COUNT(*) > 0
- BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
- CSELECT DISTINCT COUNT(*) FROM orders
- DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
5.Średni
Co zapewnia wspólne wyrażenie tablicowe, CTE (WITH name AS (...))?
- ANazwany tymczasowy wynik, którego można używać w obrębie jednej instrukcji
- BTrwałą tabelę, która pozostaje zapisana na dysku, dopóki nie zostanie usunięta
- CIndeks na kolumnie
- DNowego użytkownika bazy danych
6.Średni
Co oznacza zależność funkcyjna A → B?
- AKażdej wartości A odpowiada dokładnie jedna wartość B
- BA i B są kluczami głównymi
- CKażdej wartości B odpowiada dokładnie jedna wartość A
- DA jest kluczem obcym odwołującym się do B
7.Trudny
Czego wymaga reguła dziennika zapisu z wyprzedzeniem (write-ahead logging, WAL)?
- AStrony danych muszą być zapisane przed dziennikiem
- BDziennik zapisuje się dopiero po awarii
- CRekord dziennika zmiany musi trafić do pamięci trwałej przed zmienioną stroną danych
- DKażde zapytanie musi zostać zapisane w dzienniku przed parsowaniem
8.Trudny
Dlaczego SELECT dept, name, COUNT(*) FROM emp GROUP BY dept jest niepoprawne w standardowym SQL?
- Aname nie jest ani grupowane, ani agregowane, więc nie ma jednej wartości na grupę
- Bdept musi występować wewnątrz funkcji agregującej
- CCOUNT(*) nie może być używane razem z GROUP BY
- DGROUP BY musi wymieniać wszystkie kolumny tabeli
Klucz odpowiedzi
- 1. D · Łączy wiersze o tych samych wartościach w grupy, by agregaty obliczać dla każdej grupy
- 2. C · NOT NULL
- 3. A · DISTINCT
- 4. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- 5. A · Nazwany tymczasowy wynik, którego można używać w obrębie jednej instrukcji
- 6. A · Każdej wartości A odpowiada dokładnie jedna wartość B
- 7. C · Rekord dziennika zmiany musi trafić do pamięci trwałej przed zmienioną stroną danych
- 8. A · name nie jest ani grupowane, ani agregowane, więc nie ma jednej wartości na grupę
Pełne rozwiązania krok po kroku: ćwicz ten temat na examproblems.com.