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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Что делает COMMIT в транзакции?

  1. AБлокирует всю базу данных
  2. BСоздаёт новую таблицу
  3. CОтменяет все изменения, сделанные с начала транзакции
  4. DДелает все изменения транзакции постоянными
2.Лёгкая

Какое предложение (clause) фильтрует строки до группировки?

  1. AGROUP BY
  2. BHAVING
  3. CWHERE
  4. DORDER BY
3.Лёгкая

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

  1. AUPDATE TABLE
  2. BALTER TABLE
  3. CCREATE COLUMN
  4. DINSERT COLUMN
4.Средняя

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

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

В таблице a 3 строки, в таблице b — 4 строки. Сколько строк вернёт SELECT * FROM a CROSS JOIN b?

  1. A7
  2. B4
  3. C12
  4. D3
6.Средняя

Что возвращает SELECT COALESCE(phone, 'unknown') FROM customers для клиента, у которого phone равен NULL?

  1. AОшибку
  2. B'unknown'
  3. CПустую строку
  4. DNULL
7.Сложная

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

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

Как при многоверсионном управлении параллелизмом (MVCC) читающие транзакции могут не блокировать пишущие?

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

Ответы

  1. 1. D · Делает все изменения транзакции постоянными
  2. 2. C · WHERE
  3. 3. B · ALTER TABLE
  4. 4. D · Никаких строк, потому что результат сравнения неизвестен
  5. 5. C · 12
  6. 6. B · 'unknown'
  7. 7. A · Подходит большинство строк, поэтому полное сканирование таблицы дешевле множества обращений к индексу
  8. 8. C · Читающие видят согласованный снимок зафиксированных версий строк, а пишущие создают новые версии

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