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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

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

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

Какое ключевое слово SQL удаляет повторяющиеся строки из результата?

  1. ASINGLE
  2. BDISTINCT
  3. CDIFFERENT
  4. DUNIQUE
3.Лёгкая

Какое ограничение гарантирует, что столбец никогда не останется пустым (NULL)?

  1. ACHECK NULL
  2. BDEFAULT
  3. CNOT NULL
  4. DUNIQUE
4.Средняя

В таблице employees есть столбец manager_id, ссылающийся на другого сотрудника. Как вывести каждого сотрудника рядом с именем его руководителя?

  1. AИспользовать только GROUP BY manager_id
  2. BОбъединить таблицу с самой собой через UNION ALL и фильтр WHERE
  3. CСоединить таблицу employees саму с собой, используя два псевдонима
  4. DСоздать на диске вторую копию таблицы
5.Средняя

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

  1. AПустую строку
  2. BОшибку
  3. CNULL
  4. D'unknown'
6.Средняя

Какой запрос выводит клиентов, которые ни разу не размещали заказ?

  1. ASELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
7.Сложная

Таблица b содержит в столбце y значения 1, 2 и NULL. Что возвращает SELECT * FROM a WHERE x NOT IN (SELECT y FROM b)?

  1. AВообще никаких строк
  2. BТолько строки a, где x равен NULL
  3. CСтроки a, где x не равен 1 или 2
  4. DКаждую строку a
8.Сложная

Две транзакции читают stock = 10, каждая вычитает 1 и записывает результат, получая 9 вместо 8. Какая это аномалия?

  1. AПотерянное обновление
  2. BАномалия удаления
  3. CФантомное чтение
  4. DГрязное чтение

Ответы

  1. 1. A · Ключ, состоящий из двух или более столбцов
  2. 2. B · DISTINCT
  3. 3. C · NOT NULL
  4. 4. C · Соединить таблицу employees саму с собой, используя два псевдонима
  5. 5. D · 'unknown'
  6. 6. D · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. A · Вообще никаких строк
  8. 8. A · Потерянное обновление

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