PostgreSQL Ограничения: типы с примером

⚡ Умное резюме

PostgreSQL Ограничения обеспечивают соблюдение шести встроенных правил целостности на уровне базы данных: UNIQUE, NOT NULL, CHECK, PRIMARY KEY, FOREIGN KEY и EXCLUSION. LessВ ходе занятий рассматриваются синтаксис, примеры и случаи применения каждого правила.

  • 🛡️ Integrity Правила: Блокирует некорректные данные на уровне базы данных.
  • 🔑 Первичный ключ: УНИКАЛЬНЫЙ плюс НЕ NULL; один на таблицу.
  • 🔗 Внешний ключ: Указывает на уникальный или первичный ключ в другом месте.
  • ПРОВЕРЯТЬ: Логическая проверка для каждой строки.
  • ???? НЕ НОЛЬ: Отклоняет значения NULL.
  • 🎯 ИСКЛЮЧЕНИЕ: УНИКАЛЬНЫЙ с пользовательскими операторами.

PostgreSQL ограничения

Что такое ограничение?

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

  • Выпуск 1: Ограничения, налагаемые типами данных, не подходят для некоторых приложений. Например, столбец, содержащий цену товара, должен принимать только положительные значения. Однако не существует конкретного типа данных, который принимает только положительные числа.
  • Выпуск 2: Возможно, вы захотите ограничить информацию в данных строки/столбца по отношению к другим столбцам или строкам. Например, таблица, содержащая информацию об элементе, должна иметь только одну строку для каждого ограничения уникальности столбца.

Чтобы преодолеть такие проблемы и определить эти правила, вы можете использовать ограничениес в PostgreSQL. Проще говоря, ограничения — это правила, которым должны следовать ваши данные. Добавление ограничений таблицы позволяет системе базы данных обеспечить целостность данных.

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

Тип PostgreSQL ограничения

Давайте рассмотрим различные виды PostgreSQL ограничение, которое вы можете создать для обеспечения корректности данных:

  • Уникальное Произведение
  • Не ноль
  • СНЕСК
  • Основной ключ
  • Внешний ключ
  • Ограничение выполнения

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

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

Пример

CREATE TABLE Item(
Item_no integer UNIQUE,
Name text,
);

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

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

Ограничение not null не является значением по умолчанию. PostgreSQL стандарт и не должен использоваться в переносимых приложениях. Позже он был добавлен в PostgreSQL чтобы сделать его совместимым с каким-либо другим системы СУБД. Многие используют его, потому что он позволяет легко переключать ограничения в файле сценария.

Синтаксис:

CREATE TABLE Item (
product no integer NULL, Item_name text NULL, Itm_price numeric NULL
);

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

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

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

Синтаксис:

CREATE TABLE Item(
Item_id INTEGER PRIMARY KEY,
name VARCHAR(20),
Item_price NUMERIC CHECK(price>0)
);

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

CREATE TABLE Emp(
ID	INTEGER primary key,
First_name VARCHAR(20),
Last_name VARCHAR(20),
Gender CHAR(l) check(gender gender='M'),
Salary INTEGER NOT NULL,
Dept_Num INTEGER
);
CREATE TABLE ITEM(
Id INTEGER PRIMARY KEY,
name VARCHAR(15),
price numeric CHECK (price > 0)
);

PostgreSQL Ограничение ПЕРВИЧНОГО КЛЮЧА

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

Синтаксис:

Create Table Item(
Item_no, integer PRIMARY KEY,
Item_name text,
Item_Price numeric
);

Пример 1:

CREATE TABLE Employee(
ID INTEGER PRIMARY KEY
Fname VARCHAR(20),
Lname VARCHAR(20),
Gender CHAR(l),
Salary INTEGER NOT NULL, Dept INTEGER, UNIQUE(FNAME, LNAME)
);

Пример 2:

CREATE TABLE first(
A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl)
);
Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER.
);

Пример 3:

CREATE TABLE Items (
Item_no integer UNIQUE NOT NULL, name text, price numeric
CREATE TABLE Items (
Items_no no integer PRIMARY KEY, name text, price numeric

PostgreSQL Ограничение ВНЕШНЕГО КЛЮЧА

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

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

Синтаксис:

CREATE TABLE	(
id INTEGER PRIMARY KEY. name VARCHAR(IO)
>;
CREATE TABLE testable
Id INTEGER PRIMARY KEY
read INTEGER REFERENCES	(id)
);

Пример 2:

CREATE TABLE Student (
Std_ID INTEGER primary key,
First_name VARCHAR(20),
Last_name VARCHAR(20),
Gender CHAR(l),
Steam, VARCHAR(20),
Dept_NUM INTEGER REFERENCES Department
);

PostgreSQL Ограничение исключения

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Например, следующие PostgreSQL Оператор создает новую таблицу под названием School и добавляет пять столбцов.

CREATE TABLE SCHOOL6(
STDID INT PRIMARY KEY NOT NULL,
STDNAME TEXT NOT NULL,
STDAGE INT NOT NULL,
FEEDBACK CHAR(50),
STANDARD INT NOT NULL,

Например, следующие PostgreSQL Оператор создает новую таблицу под названием Branch, в которую добавляются три столбца. Столбец STD_ID является внешним ключом и ссылается на поле ID таблицы SCHOOL6.

CREATE TABLE BRANCH (
BRANCHCODE INT PRIMARY KEY NOT NULL,
BRAMCHNAME CHAR(50) NOT NULL,
STD_ID INT references SCHOOL6(ID)
);

Часто задаваемые вопросы (FAQ)

Первичный ключ, внешний ключ, уникальный ключ, не NULL, проверка, исключение.

Инструменты искусственного интеллекта, такие как Copilot, генерируют операторы CREATE TABLE с ограничениями и условиями CHECK.

Да. Инструменты искусственного интеллекта сканируют схемы на наличие «осиротевших» внешних ключей, отсутствующих значений NOT NULL и таблиц без первичных ключей.

Первичный ключ объединяет ключи UNIQUE и NOT NULL; один ключ на таблицу. Ключ UNIQUE допускает несколько ключей и принимает значение NULL.

Используйте команды ON DELETE CASCADE, SET NULL или RESTRICT.

Нет. Оператор CHECK ссылается только на столбцы в пределах одной строки. Используйте внешние ключи или триггеры.

Используйте EXCLUDE, когда для проверки уникальности требуются операторы неравенства (например, && для проверки пересечения).ping диапазоны).

Да. Команда ALTER TABLE ADD CONSTRAINT работает после создания таблицы. Используйте NOT VALID, чтобы пропустить проверку существующих строк.

Подведем итог этой публикации следующим образом: