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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Внешний ключ (foreign key) — это:

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

Что такое суррогатный ключ (surrogate key)?

  1. AИскусственный идентификатор без бизнес-смысла, например автоинкрементный id
  2. BКлюч, используемый только в представлениях
  3. CКлюч, ссылающийся на другую таблицу
  4. DКлюч из реальных данных, например адрес электронной почты
3.Лёгкая

Какая агрегатная функция возвращает среднее значение числового столбца?

  1. ASUM
  2. BAVG
  3. CMEDIAN
  4. DMEAN
4.Средняя

Что такое SQL-инъекция (SQL injection)?

  1. AМетод резервного копирования базы данных
  2. BАтака, при которой пользовательский ввод изменяет структуру SQL-запроса
  3. CПриём для быстрой вставки многих строк одним оператором INSERT
  4. DСпособ добавления индексов
5.Средняя

Что делает GRANT SELECT ON employees TO alice?

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

Что возвращает SELECT SUM(amount) FROM orders, если предложению WHERE не соответствует ни одна строка?

  1. A0
  2. BПустую строку
  3. CNULL
  4. DОшибку
7.Сложная

Баллы: 90, 90 и 80. Какие значения даёт RANK() OVER (ORDER BY score DESC)?

  1. A2, 2, 3
  2. B1, 1, 2
  3. C1, 1, 3
  4. D1, 2, 3
8.Сложная

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

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

Ответы

  1. 1. B · Столбец, ссылающийся на первичный ключ другой таблицы
  2. 2. A · Искусственный идентификатор без бизнес-смысла, например автоинкрементный id
  3. 3. B · AVG
  4. 4. B · Атака, при которой пользовательский ввод изменяет структуру SQL-запроса
  5. 5. B · Разрешает пользователю alice читать таблицу employees
  6. 6. C · NULL
  7. 7. C · 1, 1, 3
  8. 8. A · Подходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу

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