Ограничения NOT NULL и UNIQUE

Введение в реляционные базы данных в SQL

Timo Grossenbacher

Data Journalist

Ограничение NOT NULL

  • Запрещает значения NULL в столбце
  • Должно выполняться для текущего состояния
  • Должно выполняться для любого будущего состояния
Введение в реляционные базы данных в SQL

Что означает NULL?

  • неизвестно
  • не существует
  • неприменимо
  • ...
Введение в реляционные базы данных в SQL

Что означает NULL? Пример

CREATE TABLE students (
 ssn integer not null,
 lastname varchar(64) not null,
 home_phone integer,
 office_phone integer
);
NULL != NULL
Введение в реляционные базы данных в SQL

Как добавить или удалить ограничение NOT NULL

При создании таблицы...

CREATE TABLE students (
 ssn integer not null,
 lastname varchar(64) not null,
 home_phone integer,
 office_phone integer
);

После создания таблицы...

ALTER TABLE students 
ALTER COLUMN home_phone 
SET NOT NULL;
ALTER TABLE students 
ALTER COLUMN ssn 
DROP NOT NULL;
Введение в реляционные базы данных в SQL

Ограничение UNIQUE

  • Запрещает дублирование значений в столбце
  • Должно выполняться для текущего состояния
  • Должно выполняться для любого будущего состояния

Введение в реляционные базы данных в SQL

Добавление ограничения UNIQUE

CREATE TABLE table_name (
 column_name UNIQUE
);
ALTER TABLE table_name
ADD CONSTRAINT some_name UNIQUE(column_name);
Введение в реляционные базы данных в SQL

Давайте потренируемся!

Введение в реляционные базы данных в SQL

Preparing Video For Download...