1.Лёгкая
Что такое суррогатный ключ (surrogate key)?
- AКлюч, ссылающийся на другую таблицу
- BКлюч, используемый только в представлениях
- CКлюч из реальных данных, например адрес электронной почты
- DИскусственный идентификатор без бизнес-смысла, например автоинкрементный id
2.Лёгкая
К какой части SQL относятся операторы CREATE, ALTER и DROP?
- AЯзык управления транзакциями (TCL)
- BЯзык манипулирования данными (DML)
- CЯзык определения данных (DDL)
- DЯзык управления доступом к данным (DCL)
3.Лёгкая
Какой оператор SQL изменяет значения в уже существующих строках?
- AINSERT
- BREPLACE COLUMN
- CUPDATE
- DMODIFY
4.Средняя
Почему у таблицы может быть только один кластеризованный индекс?
- AСтроки могут физически храниться только в одном порядке
- BКластеризованные индексы можно создавать только по первичному ключу
- CСтандарт SQL запрещает более одного индекса на таблицу
- DКластеризованные индексы занимают слишком много памяти
5.Средняя
Что делает ROLLBACK TO SAVEPOINT s1?
- AОтменяет изменения, сделанные после точки сохранения s1, оставляя транзакцию открытой
- BУдаляет точку сохранения и все таблицы, изменённые с тех пор
- CЗавершает транзакцию и фиксирует всё
- DОтменяет всю транзакцию с самого начала
6.Средняя
Что возвращает INTERSECT, использованный между двумя запросами SELECT?
- AСтроки, которые есть в первом результате, но нет во втором
- BДекартово произведение результатов
- CСтроки, присутствующие в обоих результатах
- DВсе строки обоих результатов
7.Сложная
Запрос FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' неожиданно теряет клиентов без заказов. Почему?
- Astatus — зарезервированное слово
- BВ соединении нужно использовать USING вместо ON
- CУсловие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
- DLEFT JOIN никогда не сохраняет строки без совпадений
8.Сложная
Почему после customers LEFT JOIN orders для подсчёта заказов клиента используют COUNT(o.id), а не COUNT(*)?
- ACOUNT(*) нельзя использовать после соединения
- BCOUNT(*) игнорирует строки со значениями NULL
- CCOUNT(o.id) считает только различных клиентов
- DCOUNT(*) считает заполненную NULL строку как 1 для клиентов без заказов
Ответы
- 1. D · Искусственный идентификатор без бизнес-смысла, например автоинкрементный id
- 2. C · Язык определения данных (DDL)
- 3. C · UPDATE
- 4. A · Строки могут физически храниться только в одном порядке
- 5. A · Отменяет изменения, сделанные после точки сохранения s1, оставляя транзакцию открытой
- 6. C · Строки, присутствующие в обоих результатах
- 7. C · Условие WHERE на o отбрасывает строки, заполненные NULL, превращая соединение во внутреннее
- 8. D · COUNT(*) считает заполненную NULL строку как 1 для клиентов без заказов
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.