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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

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

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

Что делает COMMIT в транзакции?

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

Что означает NULL в SQL?

  1. AЛогическое значение «ложь»
  2. BЧисло ноль в числовых столбцах
  3. CОтсутствующее или неизвестное значение
  4. DПустую строку
4.Средняя

Что такое триггер базы данных?

  1. AЗапланированное резервное копирование базы данных
  2. BВид индекса, ускоряющего поиск
  3. CКод, который автоматически выполняется, когда в таблице происходит заданное событие, например INSERT, UPDATE или DELETE
  4. DЗапрос, который пользователь запускает вручную
5.Средняя

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

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  3. CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
6.Средняя

Что возвращает 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Только студентов, сдавших экзамен
7.Сложная

Что показывает EXPLAIN (или EXPLAIN ANALYZE в PostgreSQL) для запроса?

  1. AПлан выполнения, выбранный оптимизатором, например способы сканирования и соединения
  2. BСписок пользователей, выполнявших запрос
  3. CТолько переписанный запрос в нотации реляционной алгебры
  4. DЗначение каждого ключевого слова SQL в запросе
8.Сложная

Два дежурных врача каждый проверяют, что другой ещё на дежурстве, а затем оба одновременно снимаются с дежурства. Какую аномалию здесь всё ещё допускает изоляция снимков (snapshot isolation)?

  1. AГрязную запись
  2. BАсимметрию записи (write skew)
  3. CНеповторяемое чтение в пределах одной транзакции
  4. DГрязное чтение

Ответы

  1. 1. D · Оставляет строки, в которых country равно любому значению из списка
  2. 2. C · Делает все изменения транзакции постоянными
  3. 3. C · Отсутствующее или неизвестное значение
  4. 4. C · Код, который автоматически выполняется, когда в таблице происходит заданное событие, например INSERT, UPDATE или DELETE
  5. 5. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  6. 6. B · Каждое имя с меткой 'pass' или 'fail' в зависимости от оценки
  7. 7. A · План выполнения, выбранный оптимизатором, например способы сканирования и соединения
  8. 8. B · Асимметрию записи (write skew)

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