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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

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

  1. AREMOVE TABLE
  2. BDELETE FROM
  3. CTRUNCATE ROWS
  4. DDROP TABLE
2.Лёгкая

Что гарантирует ограничение UNIQUE на столбце?

  1. AСтолбец автоматически становится первичным ключом таблицы
  2. BНикакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
  3. CСтолбец нельзя изменить после вставки
  4. DЗначения столбца отсортированы
3.Лёгкая

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

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

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

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

Какой запрос возвращает самую высокую зарплату в каждом отделе?

  1. ASELECT dept, salary FROM emp WHERE salary = MAX(salary)
  2. BSELECT dept, MAX(salary) FROM emp GROUP BY dept
  3. CSELECT MAX(dept), salary FROM emp GROUP BY salary
  4. DSELECT dept, MAX(salary) FROM emp ORDER BY dept
6.Средняя

В таблице employees есть столбец manager_id, ссылающийся на другого сотрудника. Как вывести каждого сотрудника рядом с именем его руководителя?

  1. AИспользовать только GROUP BY manager_id
  2. BОбъединить таблицу с самой собой через UNION ALL и фильтр WHERE
  3. CСоединить таблицу employees саму с собой, используя два псевдонима
  4. DСоздать на диске вторую копию таблицы
7.Сложная

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

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

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

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

Ответы

  1. 1. D · DROP TABLE
  2. 2. B · Никакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
  3. 3. C · UNION ALL сохраняет повторяющиеся строки
  4. 4. D · Отменяет изменения, сделанные после точки сохранения s1, оставляя транзакцию открытой
  5. 5. B · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. C · Соединить таблицу employees саму с собой, используя два псевдонима
  7. 7. A · Условие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
  8. 8. D · Когда его результат эквивалентен некоторому последовательному выполнению тех же транзакций

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