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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Что делает GROUP BY в запросе?

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

Что такое потенциальный ключ (candidate key)?

  1. AМинимальный набор столбцов, однозначно идентифицирующий каждую строку
  2. BНабор столбцов, общий для двух таблиц и связывающий их строки
  3. CЛюбой столбец, содержащий значения NULL
  4. DСтолбец, ожидающий превращения во внешний ключ
3.Лёгкая

Что гарантирует ограничение UNIQUE на столбце?

  1. AНикакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
  2. BЗначения столбца отсортированы
  3. CСтолбец автоматически становится первичным ключом таблицы
  4. DСтолбец нельзя изменить после вставки
4.Средняя

Какой запрос возвращает число различных городов в таблице customers?

  1. ASELECT COUNT(city) FROM customers GROUP BY city
  2. BSELECT SUM(DISTINCT city) FROM customers
  3. CSELECT DISTINCT COUNT(city) FROM customers
  4. DSELECT COUNT(DISTINCT city) FROM customers
5.Средняя

Почему у таблицы может быть только один кластеризованный индекс?

  1. AСтандарт SQL запрещает более одного индекса на таблицу
  2. BСтроки могут физически храниться только в одном порядке
  3. CКластеризованные индексы можно создавать только по первичному ключу
  4. DКластеризованные индексы занимают слишком много памяти
6.Средняя

В таблице есть строки, где col равен NULL. Какие строки возвращает WHERE col = NULL?

  1. AВсе строки таблицы
  2. BНикаких строк, потому что результат сравнения неизвестен
  3. CОшибку в любой базе данных
  4. DТолько строки, где col равен NULL, как при IS NULL
7.Сложная

Что вернёт следующий запрос: SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?

  1. AТолько студентов с наивысшей оценкой
  2. BСреднюю оценку всех студентов
  3. CСтудентов с оценкой выше средней
  4. DОшибку, поскольку подзапросы в WHERE не допускаются
8.Сложная

В таблице миллион строк и логический столбец is_active, равный TRUE для 95% строк. Почему оптимизатор может игнорировать индекс по is_active для WHERE is_active = TRUE?

  1. AПодходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу
  2. BИндексы нельзя создавать по логическим столбцам
  3. CИндекс считает TRUE значением NULL
  4. DОптимизатор никогда не использует индексы в предложениях WHERE

Ответы

  1. 1. A · Объединяет строки с одинаковыми значениями в группы, чтобы агрегаты вычислялись для каждой группы
  2. 2. A · Минимальный набор столбцов, однозначно идентифицирующий каждую строку
  3. 3. A · Никакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
  4. 4. D · SELECT COUNT(DISTINCT city) FROM customers
  5. 5. B · Строки могут физически храниться только в одном порядке
  6. 6. B · Никаких строк, потому что результат сравнения неизвестен
  7. 7. C · Студентов с оценкой выше средней
  8. 8. A · Подходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу

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