Ограничения - это правила, применяемые в столбцах данных таблицы. Они используются для ограничения типа данных, которые могут входить в таблицу. Это обеспечивает точность и надежность данных в базе данных.
Ограничениями могут быть уровень столбца или таблицы. Ограничения уровня столбца применяются только к одному столбцу, тогда как ограничения уровня таблицы применяются ко всей таблице.
Ниже приведены обычно используемые ограничения, доступные в 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 позволяет пользователю переименовать таблицу или добавить новый столбец в существующую таблицу. Невозможно переименовать столбец, удалить столбец или добавить или удалить ограничения из таблицы.
0 комментариев