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

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

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

Имя: ____________________   Дата: ____________

1.Лёгкая

Какой оператор удаляет строки из таблицы?

  1. ADROP
  2. BDELETE
  3. CREMOVE
  4. DTRUNCATE COLUMN
2.Лёгкая

К какой части SQL относятся операторы CREATE, ALTER и DROP?

  1. AЯзык управления транзакциями (TCL)
  2. BЯзык манипулирования данными (DML)
  3. CЯзык определения данных (DDL)
  4. DЯзык управления доступом к данным (DCL)
3.Лёгкая

К какой части SQL относятся GRANT и REVOKE?

  1. AЯзык определения данных (DDL)
  2. BЯзык управления доступом к данным (DCL)
  3. CЯзык манипулирования данными (DML)
  4. DЯзык запросов к данным (DQL)
4.Средняя

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

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

Какое свойство ACID гарантирует, что зафиксированные изменения переживут сбой системы?

  1. AИзолированность (Isolation)
  2. BСогласованность (Consistency)
  3. CДолговечность (Durability)
  4. DАтомарность (Atomicity)
6.Средняя

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

  1. ASELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  2. BSELECT DISTINCT COUNT(*) FROM orders
  3. CSELECT customer_id FROM orders WHERE COUNT(*) > 0
  4. DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
7.Сложная

Почему после customers LEFT JOIN orders для подсчёта заказов клиента используют COUNT(o.id), а не COUNT(*)?

  1. ACOUNT(*) нельзя использовать после соединения
  2. BCOUNT(*) считает заполненную NULL строку как 1 для клиентов без заказов
  3. CCOUNT(o.id) считает только различных клиентов
  4. DCOUNT(*) игнорирует строки со значениями NULL
8.Сложная

Почему запрос с WHERE YEAR(order_date) = 2025 может не использовать индекс по order_date?

  1. AПрименение функции к столбцу не позволяет выполнить простой диапазонный поиск по индексу
  2. BИндекс по order_date используется только для ORDER BY, но никогда для WHERE
  3. CYEAR не является допустимым SQL
  4. DИндексы никогда не работают с датами

Ответы

  1. 1. B · DELETE
  2. 2. C · Язык определения данных (DDL)
  3. 3. B · Язык управления доступом к данным (DCL)
  4. 4. C · В нём можно использовать агрегатные функции для фильтрации групп
  5. 5. C · Долговечность (Durability)
  6. 6. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  7. 7. B · COUNT(*) считает заполненную NULL строку как 1 для клиентов без заказов
  8. 8. A · Применение функции к столбцу не позволяет выполнить простой диапазонный поиск по индексу

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