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

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

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

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

1.Легка

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

  1. AORDER BY salary ASC
  2. BGROUP BY salary DESC
  3. CSORT salary DOWN
  4. DORDER BY salary DESC
2.Легка

Яке речення в PostgreSQL і MySQL повертає лише перші 10 рядків результату?

  1. ATOP ROWS 10
  2. BLIMIT 10
  3. CFIRST 10 ONLY
  4. DMAX 10
3.Легка

Яке речення (clause) фільтрує рядки до групування?

  1. AGROUP BY
  2. BHAVING
  3. CORDER BY
  4. DWHERE
4.Середня

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

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

Що робить GRANT SELECT ON employees TO alice?

  1. AДозволяє alice оновлювати й видаляти рядки в таблиці employees
  2. BДозволяє користувачеві alice читати таблицю employees
  3. CРобить alice власницею бази даних
  4. DКопіює таблицю employees для alice
6.Середня

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

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

Чому багато СКБД використовують суворе двофазне блокування, утримуючи ексклюзивні блокування до фіксації?

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

Чому після customers LEFT JOIN orders для підрахунку замовлень кожного клієнта використовують COUNT(o.id), а не COUNT(*)?

  1. ACOUNT(*) ігнорує рядки зі значеннями NULL
  2. BCOUNT(o.id) рахує лише різних клієнтів
  3. CCOUNT(*) рахує рядок, заповнений NULL, як 1 для клієнтів без замовлень
  4. DCOUNT(*) не дозволено після з’єднання

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

  1. 1. D · ORDER BY salary DESC
  2. 2. B · LIMIT 10
  3. 3. D · WHERE
  4. 4. A · Проміжною (зв’язувальною) таблицею із зовнішніми ключами і до студентів, і до курсів
  5. 5. B · Дозволяє користувачеві alice читати таблицю employees
  6. 6. D · Кожне ім’я з позначкою 'pass' або 'fail' залежно від оцінки
  7. 7. A · Воно запобігає каскадним скасуванням, бо ніхто не може читати незафіксовані записи
  8. 8. C · COUNT(*) рахує рядок, заповнений NULL, як 1 для клієнтів без замовлень

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