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

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

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

  • NOT NULL Constraint - гарантирует, что столбец не может иметь значение 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 ограничение

Ограничение 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
);

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

UNIQUE ограничение не позволяет двум записям иметь одинаковые значения в определенном столбце. Например, в таблице 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 ограничение

Ограничение PRIMARY KEY однозначно идентифицирует каждую запись в таблице базы данных. Может быть больше UNIQUE столбцов, но только один первичный ключ в таблице. Первичные ключи важны при проектировании таблиц базы данных. Первичные ключи - это уникальные идентификаторы.

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

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

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

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

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

CHECK ограничение

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

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

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)
);

Dropping ограничение

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