PostgreSQL Ограничения: Типове с пример

Какво е ограничение?

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

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

За да преодолеете подобни проблеми и да дефинирате тези правила, можете да използвате ограничениеите в PostgreSQL. С прости думи, ограниченията са правила, които вашите данни трябва да следват. Добавянето на ограничения на таблицата позволява на системата от бази данни да налага целостта на данните.

Следователно, ако потребител се опитва да съхрани данни в колона, която нарушава дефинирано ограничение, трябва да се покаже съобщение за грешка.

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

Нека да разгледаме различните видове PostgreSQL ограничение, което можете да създадете, за да гарантирате коректността на данните:

  • Уникална
  • Не е нула
  • Проверете ограничението
  • Първичен ключ
  • Чужд ключ
  • Ограничение за изпълнение

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

Уникалните ограничения ви помагат да гарантирате, че данните, съдържащи се в колона или група от ограничения на колони, са уникални.

Пример

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

2) НЕ нулеви ограничения

Ограничение за не-нула дефинира, че колона никога не трябва да бъде нулева стойност. Този тип ограничение е много подобно на създаването на ограничение за проверка. обаче PostgreSQL създава ненулево ограничение, което е по-ефективно. Проблемът с този метод е, че не можете да дадете изрични имена на не-нулеви ограничения.

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

Синтаксис:

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

3) PostgreSQL Проверете ограниченията

Ограничението за проверка ви помага да укажете, че стойността в дадена колона трябва да бъде булев израз.

- PostgreSQL check constraint се състои от ключовата дума 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)
);

4) Основни ключови ограничения

Ограничението за първичен ключ ви позволява да използвате колона или група от колони като уникален идентификатор за редове в таблицата. За да дефинирате ограниченията на първичния ключ, вашите декларирани стойности трябва да бъдат уникални и да не са нулеви. Това позволява две дефиниции на таблици да приемат едни и същи данни.

Синтаксис:

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

5) Ограничения на външен ключ

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

Да приемем, че имате таблица, която съхранява поръчки за различни продукти. Искате да сте сигурни, че таблицата съдържа поръчки на съществуващи продукти. И така, тук трябва да дефинирате ограничение за външен ключ в таблицата с поръчки, което препраща към таблицата с продукти.

Синтаксис:

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

6) Ограничения за изключване

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

Пример:

Например следното 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)
);