Базы данных и SQL: лист заданий с ответами

Бесплатный лист заданий для печати по теме «Базы данных и SQL»: 8 задач от простых до экзаменационного уровня, с ответами. Распечатайте его или сохраните как PDF.

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Какой оператор добавляет новый столбец в существующую таблицу?

  1. AUPDATE TABLE
  2. BALTER TABLE
  3. CCREATE COLUMN
  4. DINSERT COLUMN
2.Лёгкая

Что делает WHERE country IN ('NL', 'BE', 'DE')?

  1. AОставляет строки, в которых значение country содержит сразу все три кода
  2. BОставляет строки, в которых country нет в списке
  3. CОставляет строки, в которых country равно любому значению из списка
  4. DСортирует строки в порядке списка
3.Лёгкая

Что такое суррогатный ключ (surrogate key)?

  1. AКлюч, используемый только в представлениях
  2. BКлюч из реальных данных, например адрес электронной почты
  3. CИскусственный идентификатор без бизнес-смысла, например автоинкрементный id
  4. DКлюч, ссылающийся на другую таблицу
4.Средняя

Какой запрос возвращает количество заказов по каждому клиенту?

  1. ASELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  2. BSELECT DISTINCT COUNT(*) FROM orders
  3. CSELECT customer_id FROM orders WHERE COUNT(*) > 0
  4. DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
5.Средняя

В таблице есть строки, где col равен NULL. Какие строки возвращает WHERE col = NULL?

  1. AТолько строки, где col равен NULL, как при IS NULL
  2. BВсе строки таблицы
  3. CНикаких строк, потому что результат сравнения неизвестен
  4. DОшибку в любой базе данных
6.Средняя

Почему SELECT price * 2 AS double_price FROM t WHERE double_price > 10 в большинстве баз данных завершается ошибкой?

  1. AПсевдонимы не могут содержать подчёркивание
  2. BАрифметика в списке SELECT не допускается
  3. CWHERE может сравнивать только текстовые столбцы
  4. DWHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
7.Сложная

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

  1. AИндексы никогда не работают с датами
  2. BИндекс по order_date используется только для ORDER BY, но никогда для WHERE
  3. CYEAR не является допустимым SQL
  4. DПрименение функции к столбцу не позволяет выполнить простой диапазонный поиск по индексу
8.Сложная

Когда расписание параллельных транзакций называют сериализуемым?

  1. AКогда его результат эквивалентен некоторому последовательному выполнению тех же транзакций
  2. BКогда ни одна транзакция никогда не читает данные
  3. CКогда транзакции выполняются только на одном процессоре
  4. DКогда каждой транзакции присваивается порядковый номер

Ответы

  1. 1. B · ALTER TABLE
  2. 2. C · Оставляет строки, в которых country равно любому значению из списка
  3. 3. C · Искусственный идентификатор без бизнес-смысла, например автоинкрементный id
  4. 4. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  5. 5. C · Никаких строк, потому что результат сравнения неизвестен
  6. 6. D · WHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
  7. 7. D · Применение функции к столбцу не позволяет выполнить простой диапазонный поиск по индексу
  8. 8. A · Когда его результат эквивалентен некоторому последовательному выполнению тех же транзакций

Полные пошаговые решения: занимайтесь этой темой на examproblems.com.