1.Лёгкая
Какие строки отбирает WHERE price BETWEEN 10 AND 20?
- AСтроки с ценой вне диапазона от 10 до 20
- BСтроки с ценой от 10 до 20, включая 10 и 20
- CСтроки с ценой больше 10 и меньше 20, без 10 и 20
- DТолько строки с ценой, равной 10 или 20
2.Лёгкая
Какой оператор добавляет новый столбец в существующую таблицу?
- AALTER TABLE
- BUPDATE TABLE
- CINSERT COLUMN
- DCREATE COLUMN
3.Лёгкая
Какая агрегатная функция возвращает среднее значение числового столбца?
- ASUM
- BMEAN
- CAVG
- DMEDIAN
4.Средняя
Почему SELECT price * 2 AS double_price FROM t WHERE double_price > 10 в большинстве баз данных завершается ошибкой?
- AАрифметика в списке SELECT не допускается
- BПсевдонимы не могут содержать подчёркивание
- CWHERE может сравнивать только текстовые столбцы
- DWHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
5.Средняя
Какой запрос возвращает количество заказов по каждому клиенту?
- ASELECT customer_id FROM orders WHERE COUNT(*) > 0
- BSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- CSELECT DISTINCT COUNT(*) FROM orders
- DSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
6.Средняя
В таблице есть строки, где col равен NULL. Какие строки возвращает WHERE col = NULL?
- AТолько строки, где col равен NULL, как при IS NULL
- BОшибку в любой базе данных
- CВсе строки таблицы
- DНикаких строк, потому что результат сравнения неизвестен
7.Сложная
Почему SELECT dept, name, COUNT(*) FROM emp GROUP BY dept недопустим в стандартном SQL?
- Adept должен находиться внутри агрегатной функции
- Bname не группируется и не агрегируется, поэтому у него нет единственного значения в группе
- CCOUNT(*) нельзя использовать вместе с GROUP BY
- DВ GROUP BY нужно перечислить все столбцы таблицы
8.Сложная
Запрос FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' неожиданно теряет клиентов без заказов. Почему?
- AВ соединении нужно использовать USING вместо ON
- BLEFT JOIN никогда не сохраняет строки без совпадений
- Cstatus — зарезервированное слово
- DУсловие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
Ответы
- 1. B · Строки с ценой от 10 до 20, включая 10 и 20
- 2. A · ALTER TABLE
- 3. C · AVG
- 4. D · WHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
- 5. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- 6. D · Никаких строк, потому что результат сравнения неизвестен
- 7. B · name не группируется и не агрегируется, поэтому у него нет единственного значения в группе
- 8. D · Условие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.