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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

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

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

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

  1. AREPLACE COLUMN
  2. BMODIFY
  3. CUPDATE
  4. DINSERT
3.Лёгкая

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

  1. AHAVING
  2. BGROUP BY
  3. CWHERE
  4. DORDER BY
4.Средняя

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

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

Что даёт обобщённое табличное выражение (WITH name AS (...))?

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

Первая нормальная форма (1NF) требует, чтобы:

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

Что возвращает SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp?

  1. AОшибку, потому что name нет в GROUP BY
  2. BПо одной строке на отдел со средней зарплатой
  3. CТолько сотрудников, зарабатывающих больше среднего по отделу
  4. DКаждую строку сотрудника вместе со средней зарплатой его отдела
8.Сложная

Почему SELECT dept, name, COUNT(*) FROM emp GROUP BY dept недопустим в стандартном SQL?

  1. AВ GROUP BY нужно перечислить все столбцы таблицы
  2. Bname не группируется и не агрегируется, поэтому у него нет единственного значения в группе
  3. CCOUNT(*) нельзя использовать вместе с GROUP BY
  4. Ddept должен находиться внутри агрегатной функции

Ответы

  1. 1. B · Минимальный набор столбцов, однозначно идентифицирующий каждую строку
  2. 2. C · UPDATE
  3. 3. C · WHERE
  4. 4. C · Атака, при которой пользовательский ввод изменяет структуру SQL-запроса
  5. 5. D · Именованный временный результат, который можно использовать в пределах одного оператора
  6. 6. C · Каждый столбец содержал атомарные значения и не было повторяющихся групп
  7. 7. D · Каждую строку сотрудника вместе со средней зарплатой его отдела
  8. 8. B · name не группируется и не агрегируется, поэтому у него нет единственного значения в группе

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