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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Чем UNION ALL отличается от UNION?

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

Клиент может разместить много заказов, но каждый заказ принадлежит ровно одному клиенту. Какой это тип связи?

  1. AНоль к нулю
  2. BОдин ко многим
  3. CОдин к одному
  4. DМногие ко многим
3.Лёгкая

Какие строки отбирает WHERE price BETWEEN 10 AND 20?

  1. AТолько строки с ценой, равной 10 или 20
  2. BСтроки с ценой от 10 до 20, включая 10 и 20
  3. CСтроки с ценой вне диапазона от 10 до 20
  4. DСтроки с ценой больше 10 и меньше 20, без 10 и 20
4.Средняя

Что такое SQL-инъекция (SQL injection)?

  1. AСпособ добавления индексов
  2. BПриём для быстрой вставки многих строк одним оператором INSERT
  3. CМетод резервного копирования базы данных
  4. DАтака, при которой пользовательский ввод изменяет структуру SQL-запроса
5.Средняя

Когда WHERE EXISTS (подзапрос) истинно для строки?

  1. AКогда подзапрос не возвращает значений NULL
  2. BКогда подзапрос возвращает ровно одну строку
  3. CКогда подзапрос возвращает число больше нуля
  4. DКогда подзапрос возвращает хотя бы одну строку
6.Средняя

Что делает ROLLBACK TO SAVEPOINT s1?

  1. AЗавершает транзакцию и фиксирует всё
  2. BОтменяет изменения, сделанные после точки сохранения s1, оставляя транзакцию открытой
  3. CУдаляет точку сохранения и все таблицы, изменённые с тех пор
  4. DОтменяет всю транзакцию с самого начала
7.Сложная

Запрос FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' неожиданно теряет клиентов без заказов. Почему?

  1. AВ соединении нужно использовать USING вместо ON
  2. BLEFT JOIN никогда не сохраняет строки без совпадений
  3. CУсловие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
  4. Dstatus — зарезервированное слово
8.Сложная

Двухфазная блокировка (2PL) гарантирует:

  1. AЧто блокировки не нужны
  2. BРасписания, сериализуемые по конфликтам (conflict-serializable)
  3. CЧто транзакции никогда не ждут
  4. DЧто взаимоблокировки никогда не возникнут

Ответы

  1. 1. A · UNION ALL сохраняет повторяющиеся строки
  2. 2. B · Один ко многим
  3. 3. B · Строки с ценой от 10 до 20, включая 10 и 20
  4. 4. D · Атака, при которой пользовательский ввод изменяет структуру SQL-запроса
  5. 5. D · Когда подзапрос возвращает хотя бы одну строку
  6. 6. B · Отменяет изменения, сделанные после точки сохранения s1, оставляя транзакцию открытой
  7. 7. C · Условие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
  8. 8. B · Расписания, сериализуемые по конфликтам (conflict-serializable)

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