Робочий аркуш «Бази даних і SQL» з відповідями

Безкоштовний робочий аркуш для друку «Бази даних і SQL»: 8 задач від легких до рівня іспиту, з ключем відповідей. Роздрукуйте його або збережіть як PDF.

Для викладачів: можна безкоштовно друкувати, копіювати й використовувати на заняттях. Кожен новий аркуш має нові значення і власні відповіді. Будемо вдячні за посилання на ExamProblems на сторінці вашого курсу.

Ім’я: ____________________   Дата: ____________

1.Легка

Чим UNION ALL відрізняється від UNION?

  1. AUNION ALL видаляє дублікати рядків
  2. BUNION ALL працює лише з однією таблицею
  3. CUNION ALL зберігає дублікати рядків
  4. DUNION ALL сортує результат
2.Легка

Що робить WHERE country IN ('NL', 'BE', 'DE')?

  1. AЗалишає рядки, де country дорівнює будь-якому значенню зі списку
  2. BСортує рядки в порядку списку
  3. CЗалишає рядки, де значення country містить усі три коди одночасно
  4. DЗалишає рядки, де country немає у списку
3.Легка

Як відсортувати результат від найвищої до найнижчої зарплати?

  1. ASORT salary DOWN
  2. BORDER BY salary ASC
  3. CORDER BY salary DESC
  4. DGROUP BY salary DESC
4.Середня

Представлення (view) у SQL — це:

  1. AКопія таблиці на диску
  2. BЗбережений запит, що поводиться як віртуальна таблиця
  3. CЕкран у клієнті бази даних для перегляду таблиць
  4. DТип індексу
5.Середня

Студенти можуть відвідувати багато курсів, а курси мають багато студентів. Як це моделюють у таблицях?

  1. AСтовпцем зовнішнього ключа course_id у таблиці студентів, що вказує на курси
  2. BОб’єднанням студентів і курсів в одну таблицю
  3. CСписком id курсів, що зберігається в одному стовпці
  4. DПроміжною (зв’язувальною) таблицею із зовнішніми ключами і до студентів, і до курсів
6.Середня

Який запит повертає кількість різних міст у таблиці customers?

  1. ASELECT COUNT(DISTINCT city) FROM customers
  2. BSELECT COUNT(city) FROM customers GROUP BY city
  3. CSELECT DISTINCT COUNT(city) FROM customers
  4. DSELECT SUM(DISTINCT city) FROM customers
7.Складна

Таблиця має мільйон рядків і булевий стовпець is_active, що дорівнює TRUE для 95% з них. Чому оптимізатор може ігнорувати індекс на is_active для WHERE is_active = TRUE?

  1. AОптимізатор ніколи не використовує індекси в реченнях WHERE
  2. BІндекс трактує TRUE як NULL
  3. CБільшість рядків відповідають умові, тож повне сканування таблиці дешевше за багато пошуків в індексі
  4. DІндекси не можна створювати на булевих стовпцях
8.Складна

Дві транзакції обидві читають stock = 10, кожна віднімає 1 і записує результат, отримуючи 9 замість 8. Що це за аномалія?

  1. AВтрачене оновлення
  2. BАномалія видалення
  3. CБрудне читання
  4. DФантомне читання

Ключ відповідей

  1. 1. C · UNION ALL зберігає дублікати рядків
  2. 2. A · Залишає рядки, де country дорівнює будь-якому значенню зі списку
  3. 3. C · ORDER BY salary DESC
  4. 4. B · Збережений запит, що поводиться як віртуальна таблиця
  5. 5. D · Проміжною (зв’язувальною) таблицею із зовнішніми ключами і до студентів, і до курсів
  6. 6. A · SELECT COUNT(DISTINCT city) FROM customers
  7. 7. C · Більшість рядків відповідають умові, тож повне сканування таблиці дешевше за багато пошуків в індексі
  8. 8. A · Втрачене оновлення

Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.