Бесплатный лист заданий для печати по теме «Базы данных и SQL»: 8 задач от простых до экзаменационного уровня, с ответами. Распечатайте его или сохраните как PDF.
Для преподавателей: можно бесплатно печатать, копировать и использовать на занятиях. Каждый новый лист содержит новые значения и собственные ответы. Будем благодарны за ссылку на ExamProblems на странице вашего курса.
Имя: ____________________ Дата: ____________
1.Лёгкая
Что делает GROUP BY в запросе?
AОбъединяет строки с одинаковыми значениями в группы, чтобы агрегаты вычислялись для каждой группы
BУдаляет строки со значениями NULL
CСоединяет две таблицы по их общим столбцам
DСортирует строки результата по алфавиту
2.Лёгкая
Что такое потенциальный ключ (candidate key)?
AМинимальный набор столбцов, однозначно идентифицирующий каждую строку
BНабор столбцов, общий для двух таблиц и связывающий их строки
CЛюбой столбец, содержащий значения NULL
DСтолбец, ожидающий превращения во внешний ключ
3.Лёгкая
Что гарантирует ограничение UNIQUE на столбце?
AНикакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
BЗначения столбца отсортированы
CСтолбец автоматически становится первичным ключом таблицы
DСтолбец нельзя изменить после вставки
4.Средняя
Какой запрос возвращает число различных городов в таблице customers?
ASELECT COUNT(city) FROM customers GROUP BY city
BSELECT SUM(DISTINCT city) FROM customers
CSELECT DISTINCT COUNT(city) FROM customers
DSELECT COUNT(DISTINCT city) FROM customers
5.Средняя
Почему у таблицы может быть только один кластеризованный индекс?
AСтандарт SQL запрещает более одного индекса на таблицу
BСтроки могут физически храниться только в одном порядке
CКластеризованные индексы можно создавать только по первичному ключу
DКластеризованные индексы занимают слишком много памяти
6.Средняя
В таблице есть строки, где col равен NULL. Какие строки возвращает WHERE col = NULL?
AВсе строки таблицы
BНикаких строк, потому что результат сравнения неизвестен
CОшибку в любой базе данных
DТолько строки, где col равен NULL, как при IS NULL
7.Сложная
Что вернёт следующий запрос: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?
AТолько студентов с наивысшей оценкой
BСреднюю оценку всех студентов
CСтудентов с оценкой выше средней
DОшибку, поскольку подзапросы в WHERE не допускаются
8.Сложная
В таблице миллион строк и логический столбец is_active, равный TRUE для 95% строк. Почему оптимизатор может игнорировать индекс по is_active для WHERE is_active = TRUE?
AПодходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу
BИндексы нельзя создавать по логическим столбцам
CИндекс считает TRUE значением NULL
DОптимизатор никогда не использует индексы в предложениях WHERE
Ответы
1. A · Объединяет строки с одинаковыми значениями в группы, чтобы агрегаты вычислялись для каждой группы
2. A · Минимальный набор столбцов, однозначно идентифицирующий каждую строку
3. A · Никакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
4. D · SELECT COUNT(DISTINCT city) FROM customers
5. B · Строки могут физически храниться только в одном порядке
6. B · Никаких строк, потому что результат сравнения неизвестен
7. C · Студентов с оценкой выше средней
8. A · Подходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.