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

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

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

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

1.Легка

Що робить UNION з результатами двох запитів SELECT?

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

Яке обмеження гарантує, що стовпець ніколи не залишиться порожнім (NULL)?

  1. ADEFAULT
  2. BUNIQUE
  3. CNOT NULL
  4. DCHECK NULL
3.Легка

Які рядки обирає WHERE price BETWEEN 10 AND 20?

  1. AРядки з ціною поза діапазоном від 10 до 20
  2. BРядки з ціною понад 10 і менше 20, без 10 і 20
  3. CРядки з ціною від 10 до 20, включно з 10 і 20
  4. DЛише рядки з ціною, що дорівнює 10 або 20
4.Середня

Таблиця зберігає адресу клієнта в кожному рядку замовлення. Зміна адреси в одному рядку, але не в інших — це приклад:

  1. AАномалії оновлення
  2. BАномалії видалення
  3. CАномалії вставлення
  4. DФантомного читання
5.Середня

Таблиця orders має 5 рядків, кожен з яких посилається на наявного клієнта. Таблиця customers має 3 рядки. Скільки рядків повертає INNER JOIN за customer_id?

  1. A3
  2. B8
  3. C5
  4. D15
6.Середня

LEFT JOIN повертає:

  1. AУсі рядки з лівої таблиці та відповідні рядки з правої, з NULL там, де відповідності немає
  2. BЛише всі рядки з правої таблиці
  3. CЛише відповідні рядки з обох таблиць
  4. DРядки, які не мають відповідності в жодній таблиці
7.Складна

Чому запит з WHERE YEAR(order_date) = 2025 може не використовувати індекс на order_date?

  1. AІндекс за order_date використовується лише для ORDER BY, але ніколи для WHERE
  2. BЗастосування функції до стовпця унеможливлює простий діапазонний пошук в індексі
  3. CІндекси ніколи не працюють з датами
  4. DYEAR не є коректним SQL
8.Складна

Чому SELECT dept, name, COUNT(*) FROM emp GROUP BY dept недійсний у стандартному SQL?

  1. ACOUNT(*) не можна використовувати разом із GROUP BY
  2. Bname не згруповано й не агреговано, тож він не має одного значення на групу
  3. Cdept має бути всередині агрегатної функції
  4. DGROUP BY має перелічувати всі стовпці таблиці

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

  1. 1. D · Об’єднує їх в один результат і видаляє дублікати рядків
  2. 2. C · NOT NULL
  3. 3. C · Рядки з ціною від 10 до 20, включно з 10 і 20
  4. 4. A · Аномалії оновлення
  5. 5. C · 5
  6. 6. A · Усі рядки з лівої таблиці та відповідні рядки з правої, з NULL там, де відповідності немає
  7. 7. B · Застосування функції до стовпця унеможливлює простий діапазонний пошук в індексі
  8. 8. B · name не згруповано й не агреговано, тож він не має одного значення на групу

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