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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

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

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

Что возвращает CROSS JOIN?

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

Какое ключевое слово даёт столбцу или таблице временное альтернативное имя в запросе?

  1. AALIAS
  2. BAS
  3. CRENAME
  4. DNAME
4.Средняя

Что такое «грязное чтение» (dirty read)?

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

Какое утверждение о HAVING верно?

  1. AВ нём можно использовать агрегатные функции для фильтрации групп
  2. BОно сортирует результаты
  3. CОно должно стоять перед WHERE в операторе SELECT
  4. DЕго нельзя использовать с GROUP BY
6.Средняя

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

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

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

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

Даны функциональные зависимости A → B, B → C и C → D на R(A, B, C, D). Каково замыкание A+?

  1. A{A}
  2. B{A, B, C}
  3. C{A, B, C, D}
  4. D{A, B}

Ответы

  1. 1. D · Искусственный идентификатор без бизнес-смысла, например автоинкрементный id
  2. 2. B · Все сочетания строк двух таблиц
  3. 3. B · AS
  4. 4. B · Чтение данных, записанных другой транзакцией, которая ещё не зафиксирована
  5. 5. A · В нём можно использовать агрегатные функции для фильтрации групп
  6. 6. A · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. D · Рекурсивное обобщённое табличное выражение (WITH RECURSIVE)
  8. 8. C · {A, B, C, D}

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