1.Легка
Що повертає CROSS JOIN?
- AЛише рядки, що не збігаються
- BЛише рядки, що збігаються за спільним ключовим стовпцем
- CКожну комбінацію рядків із двох таблиць
- DЛише рядки першої таблиці
2.Легка
Яка інструкція додає новий стовпець до наявної таблиці?
- AUPDATE TABLE
- BALTER TABLE
- CCREATE COLUMN
- DINSERT COLUMN
3.Легка
Що робить UNION з результатами двох запитів SELECT?
- AОб’єднує їх в один результат і видаляє дублікати рядків
- BЗ’єднує їх поруч за ключем
- CЗалишає лише рядки, що є в обох
- DЗалишає лише рядки, які є в першому запиті, але не в другому
4.Середня
Таблиця має рядки, де col дорівнює NULL. Які рядки повертає WHERE col = NULL?
- AУсі рядки таблиці
- BПомилку в кожній базі даних
- CЖодних рядків, бо результат порівняння невідомий
- DЛише рядки, де col дорівнює NULL, як і за IS NULL
5.Середня
Таблиця зберігає адресу клієнта в кожному рядку замовлення. Зміна адреси в одному рядку, але не в інших — це приклад:
- AАномалії видалення
- BАномалії вставлення
- CАномалії оновлення
- DФантомного читання
6.Середня
Який запит виводить клієнтів, які ніколи не робили замовлень?
- ASELECT c.name FROM customers c INNER 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 NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
7.Складна
Чому після customers LEFT JOIN orders для підрахунку замовлень кожного клієнта використовують COUNT(o.id), а не COUNT(*)?
- ACOUNT(*) ігнорує рядки зі значеннями NULL
- BCOUNT(*) не дозволено після з’єднання
- CCOUNT(o.id) рахує лише різних клієнтів
- DCOUNT(*) рахує рядок, заповнений NULL, як 1 для клієнтів без замовлень
8.Складна
Що обчислює SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales?
- AНаростальний підсумок amount, упорядкований за day
- BПідсумок усіх сум у кожному рядку
- CОдин рядок на день лише з підсумком цього дня
- DСередню суму за день
Ключ відповідей
- 1. C · Кожну комбінацію рядків із двох таблиць
- 2. B · ALTER TABLE
- 3. A · Об’єднує їх в один результат і видаляє дублікати рядків
- 4. C · Жодних рядків, бо результат порівняння невідомий
- 5. C · Аномалії оновлення
- 6. C · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 7. D · COUNT(*) рахує рядок, заповнений NULL, як 1 для клієнтів без замовлень
- 8. A · Наростальний підсумок amount, упорядкований за day
Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.