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

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

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

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

1.Легка

Що таке первинний ключ (primary key)?

  1. AСтовпець, який може містити дублікати, але ніколи не повинен містити NULL
  2. BСтовпець або набір стовпців, що однозначно ідентифікує кожен рядок
  3. CПерший стовпець кожної таблиці
  4. DПароль до бази даних
2.Легка

Що робить обмеження CHECK?

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

Яка інструкція SQL змінює значення в рядках, що вже існують?

  1. AINSERT
  2. BUPDATE
  3. CREPLACE COLUMN
  4. DMODIFY
4.Середня

Коли WHERE EXISTS (subquery) істинне для рядка?

  1. AКоли підзапит повертає рівно один рядок
  2. BКоли підзапит не повертає значень NULL
  3. CКоли підзапит повертає щонайменше один рядок
  4. DКоли підзапит повертає число, більше за нуль
5.Середня

Таблиця має рядки, де col дорівнює NULL. Які рядки повертає WHERE col = NULL?

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

Стовпець містить значення 10, 20 і NULL. Що повертає AVG(col)?

  1. ANULL
  2. B30
  3. C15
  4. D10
7.Складна

Корельований підзапит (correlated subquery) — це підзапит, який:

  1. AВиконується лише один раз перед зовнішнім запитом і кешує свій результат для кожного рядка
  2. BВикористовує лише агрегатні функції
  3. CПосилається на стовпці зовнішнього запиту й обчислюється для кожного рядка зовнішнього запиту
  4. DЗ’єднує дві таблиці за зовнішнім ключем
8.Складна

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

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

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

  1. 1. B · Стовпець або набір стовпців, що однозначно ідентифікує кожен рядок
  2. 2. B · Відхиляє рядки, значення яких не задовольняють умову
  3. 3. B · UPDATE
  4. 4. C · Коли підзапит повертає щонайменше один рядок
  5. 5. B · Жодних рядків, бо результат порівняння невідомий
  6. 6. C · 15
  7. 7. C · Посилається на стовпці зовнішнього запиту й обчислюється для кожного рядка зовнішнього запиту
  8. 8. B · Більшість рядків відповідають умові, тож повне сканування таблиці дешевше за багато пошуків в індексі

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