PostgreSQL Begränsningar: Typer med exempel

Vad är begränsning?

Datatyper används för att begränsa vilken typ av information som kan lagras i en tabell. Men det finns två problem med detta tillvägagångssätt.

  • Fråga 1: Begränsningar som upprätthålls av datatyper är inte tillräckliga för vissa applikationer. Till exempel bör en kolumn som innehåller ett artikelpris endast acceptera positiva värden. Det finns dock ingen specifik datatyp som bara accepterar det positiva talet.
  • fråga 2: Du kanske vill begränsa informationen i en rad/kolumndata i förhållande till andra kolumner eller rader. Till exempel bör en tabell som innehåller artikelinformation endast ha en rad för varje unik kolumnrestriktion.

För att övervinna sådana problem och definiera dessa regler kan du använda begränsningsi PostgreSQL. Enkelt uttryckt är begränsningar regler som din data måste följa. Genom att lägga till tabellbegränsningar kan databassystemet framtvinga dataintegritet.

Därför, om en användare försöker lagra data i en kolumn som bryter mot en definierad begränsning, bör ett felmeddelande visas.

Sorts PostgreSQL begränsningar

Låt oss ta en titt på olika typer av PostgreSQL begränsning du kan skapa för att säkerställa datakorrekthet:

  • Unik
  • Inte Null
  • Kontrollera begränsning
  • Primärnyckel
  • Främmande nyckel
  • Utförandebegränsning

1) PostgreSQL Unik begränsning

Unika begränsningar hjälper dig att säkerställa att data som finns i en kolumn, eller en grupp av kolumnbegränsningar, är unik.

Exempelvis

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

2) INTE nollbegränsningar

En icke-null-begränsning definierar att en kolumn aldrig ska vara ett nullvärde. Denna typ av begränsning är mycket lik att skapa en kontrollbegränsning. Dock, PostgreSQL skapar en icke-null-begränsning, vilket är mer effektivt. Problemet med den här metoden är att du inte kan ge explicita namn till icke-null-begränsningar.

Inte null-begränsningen är inte en förinställd PostgreSQL standard och bör inte användas i bärbara applikationer. Den lades till senare PostgreSQL för att göra den kompatibel med något annat DBMS-system. Många använder det eftersom det gör det enkelt att växla mellan begränsningen i en skriptfil.

Syntax:

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

3) PostgreSQL Kontrollera begränsningar

En kontrollbegränsning hjälper dig att ange att värdet i någon kolumn måste vara ett booleskt uttryck.

Smakämnen PostgreSQL check constraint består av nyckelordet CHECK, som följs av ett uttryck inom parentes. Kontrollbegränsningen Postgres bör involvera kolumnen som bör begränsas, annars är det inte meningsfullt.

Syntax:

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

Exempelvis:

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) Primära nyckelbegränsningar

En primärnyckelbegränsning låter dig använda en kolumn eller grupp av kolumner som en unik identifierare för rader i tabellen. För att definiera primärnyckelbegränsningar bör dina deklarerade värden vara både unika och inte null. Detta tillåter två tabelldefinitioner att acceptera samma data.

Syntax:

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

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

Exempel 2:

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

Exempel 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) Utländska nyckelbegränsningar

En främmande nyckel-begränsning anger att värdena i en kolumn eller en grupp av kolumner måste matcha värdena som visas i någon rad i en annan tabell. Detta låter dig fastställa referensintegriteten mellan två associerade tabeller.

Låt oss anta att du har en tabell som lagrar beställningar för olika produkter. Du vill säkerställa att tabellen innehåller beställningar av produkter som finns. Så här måste du definiera en främmande nyckel-begränsning i ordertabellen som refererar till produkttabellen.

Syntax:

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

Exempel 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) Uteslutningsbegränsningar

Exkluderingsbegränsningar hjälper dig att se till att om två rader jämförs med varandra i de angivna kolumnerna eller uttrycken med angivna operatorer, kommer åtminstone en av dessa operatorjämförelser att returnera ett null- eller falskt värde. Lägger till detta PostgreSQL constraint kommer automatiskt att skapa ett index av den typ som anges i constraint-deklarationen.

Exempelvis:

Till exempel följande PostgreSQL statement skapar en ny tabell som heter Skola och lägger till fem kolumner.

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

Till exempel följande PostgreSQL statement skapar en ny tabell som heter Branch, som lägger till tre kolumner. Kolumnen STD_ID är den främmande nyckeln och den refererar till ID-fältet i tabellen SCHOOL6.

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