Экзамен SQL
1 / 30
1. Практика 3
SELECT 1 + 1 AS value WHERE 1 = 1 AND 2 = 1;
WHERE 1=1 AND 2=1 → FALSE, значит ни одна строка не вернется.
2 / 30
2. Какое действие выполняет команда COMMIT?
COMMIT сохраняет все изменения, сделанные с начала транзакции.
3 / 30
3. Что концептуально представляет собой структура ER-модели?
ER-модель описывает отношения между сущностями, это её основная цель.
4 / 30
4. Что представляет собой первая нормальная форма (1NF)?
1NF требует атомарности: каждое поле содержит только одно значение.
5 / 30
5. Практика 13
Student
Hobby
SELECT s.name, h.hobby FROM Student AS s RIGHT JOIN Hobby AS h ON s.id = h.student_id ORDER BY s.name NULLS FIRST;
ID 4 нет в Student, но есть в Hobby — RIGHT JOIN даст строку с NULL в имени.
6 / 30
6. Какой из следующих языков используется для описания логической модели данных?
UML — язык для визуального описания логической модели данных, сущностей и связей между ними.
7 / 30
7. Практика 5
SELECT count(*) FROM Student AS s WHERE id IN (SELECT * FROM Hobby);
SELECT * нельзя использовать в подзапросе в IN — синтаксическая ошибка.
8 / 30
8. Практика 4
SELECT count(*) FROM Student AS s WHERE EXISTS (SELECT NULL FROM Hobby AS h WHERE h.student_id = s.id LIMIT 1);
Только два студента имеют записи в Hobby.
9 / 30
9. Какая из перечисленных не относится к реляционным БД?
MongoDB — это документо-ориентированная база, а не реляционная.
10 / 30
10. Что произойдет, если объект с CHECK CONSTRAINT не пройдет проверку при вставке?
CHECK CONSTRAINT запрещает вставку данных, нарушающих условие.
11 / 30
11. Какой принцип ACID гарантирует, что если транзакция прошла успешно, изменения будут сохранены даже в случае сбоя?
Надежность (Durability) обеспечивает сохранение данных даже при сбое.
12 / 30
12. Какая команда используется для создания составного индекса?
Правильный синтаксис: CREATE INDEX имя ON таблица (поле1, поле2).
13 / 30
13. Практика 2
SELECT sum(tl.value) FROM (SELECT NULL::INTEGER as value) AS tl;
SUM от NULL без фильтра возвращает NULL.
14 / 30
14. Какая из перечисленных служб управляет доступом к данным?
DBMS (СУБД) управляет хранением, изменением и доступом к данным.
15 / 30
15. Практика 12
SELECT * FROM Student AS s CROSS JOIN Hobby AS h;
CROSS JOIN перемножает 3 студента × 4 хобби = 12 строк.Выбираются все столбцы из обеих таблиц:id, name (из Student) + id, student_id, hobby (из Hobby) → всего 5 столбцов.
16 / 30
16. Практика 15
WITH _a AS (SELECT s.name, h.hobby FROM Student AS s RIGHT JOIN Hobby AS h ON s.id = h.student_id ORDER BY s.name NULLS FIRST LIMIT 1), _b AS (SELECT 1/0 AS res) SELECT * FROM _a;
CTE _b с делением на 0 не используется, поэтому SELECT из _a сработает.
17 / 30
17. Практика 6
SELECT reg_num FROM Student ORDER BY reg_num NULLS LAST LIMIT 1;
NULLS LAST означает, что NULL в конце.ORDER BY reg_num — по возрастанию: 123, 456, NULL.LIMIT 1 — берём первый элемент → 123.
NULLS LAST
NULL
ORDER BY reg_num
LIMIT 1
18 / 30
18. Практика 8
Employee
SELECT employee, sum(transaction) FROM Employee GROUP BY employee ORDER BY 2 DESC LIMIT 1;
Иван: 100+330 = 430. У Анны: 200+45 = 245. Значит, Иван на первом месте.
19 / 30
19. Практика 14
SELECT string_agg(tl.id::VARCHAR, ‘,’ ORDER BY tl.id) AS result FROM (SELECT s.id FROM Student AS s UNION SELECT h.student_id FROM Hobby as h) as tl;
UNION убирает дубликаты, поэтому получим уникальные id: 1, 2, 3, 4.
20 / 30
20. Какая команда используется для создания CHECK CONSTRAINT?
CHECK можно добавить с помощью ALTER TABLE или при создании — через CREATE TABLE.
21 / 30
21. Практика 10
SELECT employee FROM (SELECT employee, row_number() OVER (ORDER BY transaction) as row_num FROM Employee GROUP BY employee) AS tl WHERE tl.row_num = 2 ORDER BY 1 ASC LIMIT 1;
Ошибка: нельзя использовать window-функции (row_number) вместе с GROUP BY без агрегатных функций.
22 / 30
22. Что подходит по термин реляционная БД?
Реляционная модель — это таблицы, связанные друг с другом через ключи.
23 / 30
23. Что такое первичный ключ?
Первичный ключ — уникальный идентификатор строки, не может быть NULL.
24 / 30
24. Что означает CAP в CAP-теореме?
CAP-теорема описывает невозможность одновременного соблюдения всех трёх свойств в распределённой системе.
25 / 30
25. Практика 1
SELECT CASE WHEN NULL = 5 THEN ‘A’ WHEN NULL <> 5 THEN ‘B’ ELSE ‘C’ END AS result;
NULL не равен и не неравен 5, условие не срабатывает, ELSE → ‘C’.
26 / 30
26. Какая команда используется для создания FOREIGN KEY?
FOREIGN KEY добавляется через ADD CONSTRAINT.
27 / 30
27. Практика 7
SELECT student FROM Hobby GROUP BY student HAVING student LIKE ‘%Анна%’ LIMIT 1;
HAVING используется после GROUP BY. Если значение удовлетворяет LIKE — оно будет выбрано.
28 / 30
28. Практика 11
SELECT s.name, h.hobby FROM Student AS s INNER JOIN Hobby AS h ON s.id = h.student_id WHERE h.hobby = ‘Хоккей’ AND h.hobby = ‘Чтение’;
Одновременно hobby не может быть и 'Хоккей', и 'Чтение'. Условие невозможно выполнить.
29 / 30
29. Практика 9
SELECT DISTINCT employee as emp FROM Employee ORDER BY 1 DESC LIMIT 1;
Имена сортируются по алфавиту, DESC — значит последняя по алфавиту: ‘Ирина’.
30 / 30
30. Какое из следующих понятий описывает связь между двумя сущностями в логической модели данных?
Внешний ключ связывает строки между таблицами, устанавливая логические связи.
Your score is
Перезапустить викторину