1.Лёгкая
Что делает ограничение CHECK?
- AПроверяет, существует ли таблица, до выполнения запроса к ней
- BПодсчитывает строки в таблице
- CПроверяет пароль пользователя
- DОтклоняет строки, значения которых не удовлетворяют условию
2.Лёгкая
Какое ограничение гарантирует, что столбец никогда не останется пустым (NULL)?
- AUNIQUE
- BCHECK NULL
- CDEFAULT
- DNOT NULL
3.Лёгкая
Какие строки отбирает WHERE price BETWEEN 10 AND 20?
- AСтроки с ценой вне диапазона от 10 до 20
- BСтроки с ценой от 10 до 20, включая 10 и 20
- CСтроки с ценой больше 10 и меньше 20, без 10 и 20
- DТолько строки с ценой, равной 10 или 20
4.Средняя
Какой запрос выводит клиентов, которые ни разу не размещали заказ?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
5.Средняя
Что такое SQL-инъекция (SQL injection)?
- AСпособ добавления индексов
- BМетод резервного копирования базы данных
- CПриём для быстрой вставки многих строк одним оператором INSERT
- DАтака, при которой пользовательский ввод изменяет структуру SQL-запроса
6.Средняя
Что возвращает SELECT name, CASE WHEN grade >= 5,5 THEN 'pass' ELSE 'fail' END FROM results?
- AКаждое имя с меткой 'pass' или 'fail' в зависимости от оценки
- BЧисло сдавших и не сдавших студентов
- CОшибку, потому что CASE нельзя использовать в SELECT
- DТолько студентов, сдавших экзамен
7.Сложная
Какой алгоритм соединения оптимизатор часто выбирает для соединения по равенству двух больших таблиц без полезных индексов?
- AСоединение вложенными циклами с обращениями к индексу
- BБитовое соединение по первичному ключу
- CХеш-соединение (hash join)
- DПерекрёстное соединение
8.Сложная
Что возвращает SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp?
- AТолько сотрудников, зарабатывающих больше среднего по отделу
- BПо одной строке на отдел со средней зарплатой
- CКаждую строку сотрудника вместе со средней зарплатой его отдела
- DОшибку, потому что name нет в GROUP BY
Ответы
- 1. D · Отклоняет строки, значения которых не удовлетворяют условию
- 2. D · NOT NULL
- 3. B · Строки с ценой от 10 до 20, включая 10 и 20
- 4. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 5. D · Атака, при которой пользовательский ввод изменяет структуру SQL-запроса
- 6. A · Каждое имя с меткой 'pass' или 'fail' в зависимости от оценки
- 7. C · Хеш-соединение (hash join)
- 8. C · Каждую строку сотрудника вместе со средней зарплатой его отдела
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.