Учебники

SQLite — Ограничения

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

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

Ниже приведены часто используемые ограничения, доступные в SQLite.

  • NOT NULL Ограничение — Гарантирует, что столбец не может иметь значение NULL.

  • DEFAULT Constraint — Предоставляет значение по умолчанию для столбца, когда ни один не указан.

  • UNIQUE Constraint — гарантирует, что все значения в столбце разные.

  • PRIMARY Key — уникально идентифицирует каждую строку / запись в таблице базы данных.

  • CHECK Constraint — Гарантирует, что все значения в столбце удовлетворяют определенным условиям.

NOT NULL Ограничение — Гарантирует, что столбец не может иметь значение NULL.

DEFAULT Constraint — Предоставляет значение по умолчанию для столбца, когда ни один не указан.

UNIQUE Constraint — гарантирует, что все значения в столбце разные.

PRIMARY Key — уникально идентифицирует каждую строку / запись в таблице базы данных.

CHECK Constraint — Гарантирует, что все значения в столбце удовлетворяют определенным условиям.

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

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

NULL — это не то же самое, что отсутствие данных, скорее, он представляет неизвестные данные.

пример

Например, следующий оператор SQLite создает новую таблицу с именем COMPANY и добавляет пять столбцов, три из которых, ID и NAME и AGE, указывают, что они не должны принимать значения NULL.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Ограничение по умолчанию

Ограничение DEFAULT предоставляет значение по умолчанию для столбца, когда инструкция INSERT INTO не предоставляет конкретного значения.

пример

Например, следующий оператор SQLite создает новую таблицу с именем COMPANY и добавляет пять столбцов. Здесь для столбца SALARY по умолчанию установлено значение 5000,00, поэтому в случае, если инструкция INSERT INTO не предоставляет значение для этого столбца, по умолчанию для этого столбца будет задано значение 5000,00.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Уникальное ограничение

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

пример

Например, следующий оператор SQLite создает новую таблицу с именем COMPANY и добавляет пять столбцов. Здесь столбец AGE имеет значение UNIQUE, поэтому у вас не может быть двух записей одного возраста —

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL UNIQUE,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

ПЕРВИЧНЫЙ КЛЮЧ Ограничение

Ограничение PRIMARY KEY однозначно идентифицирует каждую запись в таблице базы данных. Может быть больше УНИКАЛЬНЫХ столбцов, но только один первичный ключ в таблице. Первичные ключи важны при разработке таблиц базы данных. Первичные ключи — это уникальные идентификаторы.

Мы используем их для ссылки на строки таблицы. Первичные ключи становятся внешними ключами в других таблицах при создании связей между таблицами. Из-за «давнего надзора за кодированием» первичные ключи могут иметь значение NULL в SQLite. Это не относится к другим базам данных.

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

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

Если у таблицы есть первичный ключ, определенный для любого поля (полей), то у вас не может быть двух записей, имеющих одинаковое значение этого поля (полей).

пример

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

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

ПРОВЕРЬТЕ Ограничение

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

пример

Например, следующий SQLite создает новую таблицу с именем COMPANY и добавляет пять столбцов. Здесь мы добавляем столбец CHECK with SALARY, чтобы вы не могли иметь нулевой SALARY.

CREATE TABLE COMPANY3(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    CHECK(SALARY > 0)
);

Отбрасывание ограничения

SQLite поддерживает ограниченное подмножество ALTER TABLE. Команда ALTER TABLE в SQLite позволяет пользователю переименовать таблицу или добавить новый столбец в существующую таблицу. Невозможно переименовать столбец, удалить столбец или добавить или удалить ограничения из таблицы.