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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Какой оператор SQL изменяет значения в уже существующих строках?

  1. AINSERT
  2. BUPDATE
  3. CREPLACE COLUMN
  4. DMODIFY
2.Лёгкая

Какой оператор добавляет новый столбец в существующую таблицу?

  1. AALTER TABLE
  2. BUPDATE TABLE
  3. CINSERT COLUMN
  4. DCREATE COLUMN
3.Лёгкая

Что такое составной ключ (composite key)?

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

Столбец содержит значения 10, 20 и NULL. Что возвращает AVG(col)?

  1. A10
  2. B30
  3. CNULL
  4. D15
5.Средняя

Почему SELECT price * 2 AS double_price FROM t WHERE double_price > 10 в большинстве баз данных завершается ошибкой?

  1. AWHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
  2. BWHERE может сравнивать только текстовые столбцы
  3. CАрифметика в списке SELECT не допускается
  4. DПсевдонимы не могут содержать подчёркивание
6.Средняя

Студенты могут посещать много курсов, а на курсах много студентов. Как это моделируется в таблицах?

  1. AОбъединением студентов и курсов в одну таблицу
  2. BСвязующей таблицей с внешними ключами и на студентов, и на курсы
  3. CСписком id курсов, хранящимся в одном столбце
  4. DСтолбцом внешнего ключа course_id в таблице студентов, указывающим на courses
7.Сложная

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

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

Какая возможность SQL лучше всего подходит для поиска всех сотрудников, подчинённых руководителю, в организационном дереве неизвестной глубины?

  1. AGROUP BY по manager_id
  2. BОдно самосоединение таблицы employees по manager_id
  3. CРекурсивное обобщённое табличное выражение (WITH RECURSIVE)
  4. DОграничение UNIQUE на manager_id

Ответы

  1. 1. B · UPDATE
  2. 2. A · ALTER TABLE
  3. 3. A · Ключ, состоящий из двух или более столбцов
  4. 4. D · 15
  5. 5. A · WHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
  6. 6. B · Связующей таблицей с внешними ключами и на студентов, и на курсы
  7. 7. A · Подходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу
  8. 8. C · Рекурсивное обобщённое табличное выражение (WITH RECURSIVE)

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