Атрибуты
PRIMARY KEY
Атрибут PRIMARY KEY
задает первичный ключ таблицы.
SQL PRIMARY KEY
- это столбец в таблице, который должен содержать уникальное значение, которое можно использовать для
уникальной идентификации каждой строки таблицы.
Тем не менее, SQL
поддерживает первичные ключи напрямую с ограничением PRIMARY KEY
.
Функционально это то же самое, что и ограничение UNIQUE
, за исключением того, что для данной таблицы можно определить
только один PRIMARY KEY
. PRIMARY KEY
не допускает значения NULL
.
Первичный ключ используется для идентификации каждой строки идентично в таблице. Это может быть частью самой записи.
SQL PRIMARY KEY
может состоять из одного или нескольких полей в таблице, и когда это происходит, они называются
составным ключом.
Первичные ключи могут быть указаны во время CREATING TABLE
или во время изменения структуры существующей таблицы с
помощью инструкции ALTER TABLE
.
AUTO_INCREMENT
Атрибут AUTO_INCREMENT
позволяет указать, что значение столбца будет автоматически
увеличиваться при добавлении новой строки. Данный атрибут работает для столбцов, которые представляют целочисленный тип или числа с плавающей точкой.
UNIQUE
Атрибут UNIQUE
указывает, что столбец может хранить только уникальные значения.
Ограничение UNIQUE гарантирует, что все значения в столбце отличаются. Ограничения UNIQUE гарантируют уникальность столбца или набора столбцов. Ограничение PRIMARY KEY автоматически имеет ограничение UNIQUE.
NULL и NOT NULL
Чтобы указать, может ли столбец принимать значение NULL
, при определении столбца ему можно
задать атрибут NULL
или NOT NULL
. Если этот атрибут явным образом не будет
использован, то по умолчанию столбец будет допускать значение NULL
. Исключением является тот случай, когда столбец выступает в роли первичного ключа - в
этом случае по умолчанию столбец имеет значение NOT NULL
.
DEFAULT
Атрибут DEFAULT
определяет значение по умолчанию для столбца. Если при добавлении данных для
столбца не будет предусмотрено значение, то для него будет использоваться значение по умолчанию.
CHECK
Атрибут CHECK
задает ограничение для диапазона значений, которые могут храниться в столбце.
Для этого после CHECK
указывается в скобках условие, которому должен соответствовать столбец или несколько столбцов.
CONSTRAINT
SQL CONSTRAINTS
- это целостность, которая определяет некоторые условия, которые не позволяют столбцу оставаться
истинным при вставке, обновлении или удалении данных в столбце. Ограничения могут быть указаны, когда таблица создается
сначала с помощью оператора CREATE TABLE
или во время изменения структуры существующей таблицы с помощью инструкции
ALTER TABLE
.
SQL CONSTRAINTS
используются для реализации правил таблицы. Если какое-либо нарушение ограничений вызвало какое-либо
действие, не выполняющееся над таблицей, действие отменяется ограничением.
С помощью ключевого слова CONSTRAINT
можно задать имя для ограничений. Они указываются после
ключевого слова CONSTRAINT
перед атрибутами на уровне таблицы:
CREATE TABLE Customers
(
Id INT AUTO_INCREMENT,
Age INT,
FirstName VARCHAR(20) NOT NULL,
LastName VARCHAR(20) NOT NULL,
Email VARCHAR(30),
Phone VARCHAR(20) NOT NULL,
CONSTRAINT customers_pk PRIMARY KEY(Id),
CONSTRAINT customer_phone_uq UNIQUE(Phone),
CONSTRAINT customer_age_chk CHECK(Age >0 AND Age<100) );
В данном случае ограничение для PRIMARY KEY
называется customers_pk
, для UNIQUE
- customer_phone_uq
, а для CHECK
-
customer_age_chk
. Смысл установки имен ограничений заключается в том, что впоследствии через эти имена мы сможем управлять ограничениями - удалять или изменять их.
Установить имя можно для ограничений PRIMARY KEY
, CHECK
, UNIQUE
, а также FOREIGN KEY
, который рассматриватся далее.