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

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

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

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

1.Легка

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

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

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

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

Що таке потенційний ключ (candidate key)?

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

Що повертає SELECT name, CASE WHEN grade >= 5,5 THEN 'pass' ELSE 'fail' END FROM results?

  1. AПомилку, бо CASE не дозволено в SELECT
  2. BКожне ім’я з позначкою 'pass' або 'fail' залежно від оцінки
  3. CЛише студентів, які склали
  4. DКількість студентів, які склали й не склали
5.Середня

Таблиця a має 3 рядки, а таблиця b — 4 рядки. Скільки рядків повертає SELECT * FROM a CROSS JOIN b?

  1. A3
  2. B7
  3. C12
  4. D4
6.Середня

Що повертає EXCEPT (в Oracle — MINUS)?

  1. AУсі рядки з обох запитів без дублікатів
  2. BРядки другого запиту, яких немає в першому
  3. CРядки, що є в обох запитах
  4. DРядки першого запиту, яких немає в другому
7.Складна

Застосунок виконує UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7 і повідомляє про конфлікт, якщо жоден рядок не оновлено. Що це за техніка?

  1. AСтроге двофазне блокування з блокуванням рядків
  2. BШардинг бази даних
  3. CЖурналювання з випереджальним записом
  4. DОптимістичне керування паралельністю
8.Складна

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

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

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

  1. 1. D · Стовпець або набір стовпців, що однозначно ідентифікує кожен рядок
  2. 2. C · UNION ALL зберігає дублікати рядків
  3. 3. D · Мінімальний набір стовпців, що однозначно ідентифікує кожен рядок
  4. 4. B · Кожне ім’я з позначкою 'pass' або 'fail' залежно від оцінки
  5. 5. C · 12
  6. 6. D · Рядки першого запиту, яких немає в другому
  7. 7. D · Оптимістичне керування паралельністю
  8. 8. C · name не згруповано й не агреговано, тож він не має одного значення на групу

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