🗄️ SQL и базы данных  ·  20 вопросов  ·  ~34 мин  ·  ⏱ Таймер 34:00  ·  Лёгкий  · 

Ключи и ограничения

Ограничение ценится не названием, а тем, какую ошибочную строку оно не позволит сохранить. В тесте нужно выбрать ключ для устойчивой идентификации, проследить действие внешней ссылки, различить уникальность и первичный ключ, увидеть поведение NULL и написать CHECK, который действительно закрывает бизнес-правило, а не создаёт иллюзию защиты.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выбери один ответ из четырёх. В тесте 20 вопросов и 34 минут. После завершения откроются общий процент, четыре тематические шкалы, правильные ответы и разбор каждого задания.
Вопрос 1 из 20
Какое свойство обязательно для PRIMARY KEY?
Вопрос 2 из 20
Почему email не всегда удачный первичный ключ пользователя?
SQL
CREATE TABLE users (
  email text PRIMARY KEY,
  name text NOT NULL
);
Вопрос 3 из 20
Что идентифицирует составной первичный ключ?
SQL
CREATE TABLE user_roles (
  user_id bigint,
  role_id bigint,
  PRIMARY KEY (user_id, role_id)
);
Вопрос 4 из 20
Какой ключ лучше идентифицирует строку позиции заказа, если номер позиции уникален только внутри заказа?
Вопрос 5 из 20
Зачем сохранять UNIQUE(passport_number), если у строки уже есть id PRIMARY KEY?
Вопрос 6 из 20
Что запретит внешний ключ orders.customer_id → customers.id?
SQL
FOREIGN KEY (customer_id) REFERENCES customers(id)
Вопрос 7 из 20
Где обычно хранится внешний ключ в связи «один клиент — много заказов»?
Вопрос 8 из 20
Что произойдёт при ON DELETE CASCADE?
SQL
customer_id bigint REFERENCES customers(id) ON DELETE CASCADE
Вопрос 9 из 20
Когда ON DELETE SET NULL невозможно применить корректно?
Вопрос 10 из 20
Какое действие разумнее для финансового платежа при попытке удалить заказ, если запись платежа должна сохраняться для аудита?
Вопрос 11 из 20
Что гарантирует UNIQUE (tenant_id, slug)?
SQL
UNIQUE (tenant_id, slug)
Вопрос 12 из 20
Почему два отдельных UNIQUE на user_id и project_id неверны для таблицы участия?
Вопрос 13 из 20
Может ли обычный UNIQUE-столбец PostgreSQL по умолчанию содержать несколько NULL?
Вопрос 14 из 20
Как запретить два активных профиля одного пользователя, но разрешить исторические неактивные записи?
Вопрос 15 из 20
Что конфликтует с UNIQUE(email), если email NOT NULL?
Вопрос 16 из 20
Какой CHECK запрещает отрицательную цену и разрешает ноль?
Вопрос 17 из 20
Почему CHECK (price > 0) сам по себе может пропустить NULL?
Вопрос 18 из 20
Как выразить правило «end_at не раньше start_at», допуская ещё не заданный end_at?
Вопрос 19 из 20
Какое ограничение требует reason только при status = 'cancelled'?
Вопрос 20 из 20
Почему в PostgreSQL нельзя выразить межтабличное правило через CHECK с подзапросом?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу