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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Что делает ограничение CHECK?

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

Какое ограничение гарантирует, что столбец никогда не останется пустым (NULL)?

  1. AUNIQUE
  2. BCHECK NULL
  3. CDEFAULT
  4. DNOT NULL
3.Лёгкая

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

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

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

  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 INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
5.Средняя

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

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

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

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

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

  1. AСоединение вложенными циклами с обращениями к индексу
  2. BБитовое соединение по первичному ключу
  3. CХеш-соединение (hash join)
  4. DПерекрёстное соединение
8.Сложная

Что возвращает SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp?

  1. AТолько сотрудников, зарабатывающих больше среднего по отделу
  2. BПо одной строке на отдел со средней зарплатой
  3. CКаждую строку сотрудника вместе со средней зарплатой его отдела
  4. DОшибку, потому что name нет в GROUP BY

Ответы

  1. 1. D · Отклоняет строки, значения которых не удовлетворяют условию
  2. 2. D · NOT NULL
  3. 3. B · Строки с ценой от 10 до 20, включая 10 и 20
  4. 4. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  5. 5. D · Атака, при которой пользовательский ввод изменяет структуру SQL-запроса
  6. 6. A · Каждое имя с меткой 'pass' или 'fail' в зависимости от оценки
  7. 7. C · Хеш-соединение (hash join)
  8. 8. C · Каждую строку сотрудника вместе со средней зарплатой его отдела

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