Нужны ли нам ограничения?

Ограничения SQL — это набор правил и ограничений, которые применяются к столбцам или таблицам базы данных. Это ограничение обеспечивает точки ниже.

  • Согласованность данных
  • Отсутствие случайной потери данных при удалении эталонных данных.
  • Уменьшите избыточность данных.

Ограничения уровня таблицы

  • ОСНОВНОЙ КЛЮЧ
  • ЗАРУБЕЖНЫЙ КЛЮЧ

ОСНОВНОЙ КЛЮЧ

Ограничение первичного ключа гарантирует, что столбец не содержит значение NOT NULL и является уникальным. Он будет использоваться для идентификации конкретной строки в таблице. Таблица по умолчанию является индексом столбца первичного ключа.

Ниже пример кода создает EMP_ID в качестве первичного ключа для таблицы EMPLOYEE, которая автоматически увеличивается на единицу каждый раз, когда в таблицу вставляется новая запись.

СОЗДАТЬ ТАБЛИЦУ СОТРУДНИКОВ (

EMP_ID INT ПЕРВИЧНЫЙ КЛЮЧ АВТОМАТИЧЕСКОЕ УВЕЛИЧЕНИЕ НЕ NULL,

ИМЯ ВАРЧАР (200),

ЭЛЕКТРОННАЯ ПОЧТА VARCHAR (200),

ВОЗРАСТ ИНТ,

ТЕЛЕФОН_НОМЕР VARCHAR (15)

НЕАКТИВНЫЙ СИМВОЛ (1)

)

ВНЕШНИЙ КЛЮЧ

Внешний ключ используется для связи двух таблиц. Связь между двумя таблицами соответствует первичному ключу в одной из таблиц с внешним ключом во второй таблице.

  • Это также называется ссылочным ключом.
  • Мы используем оператор ALTER и оператор ADD, чтобы указать это ограничение.

В приведенном ниже примере кода идентификатор отдела используется в качестве внешнего ключа в таблице сотрудников.

СОЗДАТЬ ТАБЛИЧНЫЙ ОТДЕЛ (

ID INT PRIMARY KEY NOT NULL,

ИМЯ VARCHAR(200) НЕ NULL УНИКАЛЬНО

);

СОЗДАТЬ ТАБЛИЦУ СОТРУДНИКОВ (

ID INT PRIMARY KEY NOT NULL,

ИМЯ VARCHAR(200) НЕ НУЛЕВОЕ,

ЭЛЕКТРОННАЯ ПОЧТА VARCHAR(200) УНИКАЛЬНАЯ,

ПРОВЕРКА AGE INT NOT NULL (ВОЗРАСТ ‹ 150),

ТЕЛЕФОН_НОМЕР VARCHAR(15)

НЕАКТИВНЫЙ СИМВОЛ(1)

CREATED_DATE ДАТА ПО УМОЛЧАНИЮ CURRENT_TIMESTAMP,

DEPT_ID INT FOREIGN KEY REFERENCES DEPARTMENT (ID)

);

Внешний ключ ведет себя ниже при обновлении или удалении записей из таблицы.

  • RESTRICT — это поведение внешнего ключа по умолчанию. Он не позволит обновлять или удалять записи, если у него есть ссылочные строки в других таблицах.
  • SET NULL — это действие устанавливает значение опорного столбца как NULL при ОБНОВЛЕНИИ/УДАЛЕНИИ.
  • БЕЗДЕЙСТВИЕ
  • КАСКАД — это действие устанавливает значение опорного столбца с новым значением при обновлении значения столбца. В случае удаления строки удаляются ссылочные строки из другой ссылочной таблицы.

Ограничения уровня столбца

  • НЕ НОЛЬ
  • ПО УМОЛЧАНИЮ
  • ПРОВЕРЯТЬ
  • УНИКАЛЬНЫЙ

Это ограничение применяет ограничение или набор правил к данным одного столбца. Это не повлияет на все данные таблицы. Ниже приведены общие ограничения, которые применяются на уровне столбца.

НЕ НОЛЬ

По умолчанию любой столбец в таблице может содержать значение NULL. В некоторых сценариях мы хотим иметь данные в столбце, т. Е. Таблица пользователей должна содержать в строке действительное имя пользователя и информацию о возрасте. Применяя ограничение NOT NULL к каждому столбцу, мы можем гарантировать, что он не позволит вставлять запись со значением NULL в столбец имени пользователя и возраста.

Пример кода для применения ограничения NOT NULL:

СОЗДАТЬ ТАБЛИЦУ СОТРУДНИКОВ (

ID INT PRIMARY KEY NOT NULL,

ИМЯ VARCHAR (200) НЕ НУЛЕВОЕ,

ЭЛЕКТРОННАЯ ПОЧТА VARCHAR (200),

ВОЗРАСТ INT NOT NULL,

ТЕЛЕФОН_НОМЕР VARCHAR (15)

НЕАКТИВНЫЙ СИМВОЛ (1)

)

УНИКАЛЬНЫЙ

Это гарантирует, что столбец имеет уникальное значение в таблице. Но он также допускает значение NULL в столбце.

В приведенном ниже примере кода применяется ограничение UNIQUE к столбцу электронной почты таблицы сотрудников, чтобы в таблице не было двух записей с одинаковым адресом электронной почты.

СОЗДАТЬ ТАБЛИЦУ СОТРУДНИКОВ (

ID INT PRIMARY KEY NOT NULL,

ИМЯ VARCHAR (200) НЕ НУЛЕВОЕ,

ЭЛЕКТРОННАЯ ПОЧТА VARCHAR (200) УНИКАЛЬНАЯ,

ПРОВЕРКА AGE INT NOT NULL (ВОЗРАСТ ‹ 150),

ТЕЛЕФОН_НОМЕР VARCHAR (15)

НЕАКТИВНЫЙ СИМВОЛ (1)

)

ПО УМОЛЧАНИЮ

Когда запись вставляется в таблицу без указания значения для определенного столбца по умолчанию, она сохраняет значение NULL. Ограничение DEFAULT гарантирует, что столбец имеет заданное значение по умолчанию, когда пользователь пытается вставить запись без указания значения для столбца.

Например, в таблице сотрудников есть столбец с именем «CREATED_DATE», если мы хотим иметь значение по умолчанию в качестве системной даты и времени при добавлении записи в таблицу, это можно сделать с помощью приведенного ниже примера кода.

СОЗДАТЬ ТАБЛИЦУ СОТРУДНИКОВ (

ID INT PRIMARY KEY NOT NULL,

ИМЯ VARCHAR(200) НЕ НУЛЕВОЕ,

ЭЛЕКТРОННАЯ ПОЧТА VARCHAR(200) УНИКАЛЬНАЯ,

ПРОВЕРКА AGE INT NOT NULL (ВОЗРАСТ ‹ 150),

ТЕЛЕФОН_НОМЕР VARCHAR(15)

НЕАКТИВНЫЙ СИМВОЛ(1)

CREATED_DATE ДАТА ПО УМОЛЧАНИЮ CURRENT_TIMESTAMP

)

ПРОВЕРЯТЬ

Это ограничение позволяет определять различные правила и ограничения, которые следует проверять перед вставкой записей в таблицу.

Это позволяет определить правило, как столбец должен значения в пределах указанного диапазона.

Он должен проверять значение, если оно находится в пределах предопределенного списка.

В приведенном ниже примере кода мы применили ограничение CHECK к столбцу возраста, чтобы гарантировать, что значение возраста не должно превышать 150.

СОЗДАТЬ ТАБЛИЦУ СОТРУДНИКОВ (

ID INT PRIMARY KEY NOT NULL,

ИМЯ VARCHAR(200) НЕ НУЛЕВОЕ,

ПРОВЕРКА AGE INT NOT NULL (ВОЗРАСТ ‹ 150),

ТЕЛЕФОН_НОМЕР VARCHAR(15)

НЕАКТИВНЫЙ СИМВОЛ(1)

)

Надеюсь, вам понравился блог, и вы смогли понять концепции ограничений SQL в СУБД.

Спасибо. Ценим ваши отзывы и комментарии.