PostgreSQL Ograničenja: Tipovi s primjerom

Što je ograničenje?

Vrste podataka koriste se za ograničavanje vrste informacija koje se mogu pohraniti u tablicu. Ali postoje 2 problema s ovim pristupom.

  • 1. izdanje: Ograničenja koja nameću tipovi podataka nisu prikladna za određene aplikacije. Na primjer, stupac koji sadrži cijenu artikla trebao bi prihvaćati samo pozitivne vrijednosti. Međutim, ne postoji posebna vrsta podataka koja prihvaća samo pozitivan broj.
  • Pitanje 2: Možda želite ograničiti informacije u podacima retka/stupca u odnosu na druge stupce ili retke. Na primjer, tablica koja sadrži informacije o stavkama treba imati samo jedan redak za svako ograničenje jedinstvenog stupca.

Da biste prevladali takve probleme i definirali ova pravila, možete koristiti ograničenjeje u PostgreSQL. Jednostavno rečeno, ograničenja su pravila koja vaši podaci moraju slijediti. Dodavanje ograničenja tablici omogućuje sustavu baze podataka da osigura integritet podataka.

Stoga, ako korisnik pokušava pohraniti podatke u stupac koji krši definirano ograničenje, trebala bi se prikazati poruka o pogrešci.

Vrsta PostgreSQL ograničenja

Pogledajmo razne vrste PostgreSQL ograničenje koje možete stvoriti kako biste osigurali točnost podataka:

  • Jedinstven
  • Nije Null
  • Provjerite ograničenje
  • Glavni ključ
  • Strani kljuc
  • Ograničenje izvršenja

1) PostgreSQL Jedinstveno ograničenje

Jedinstvena ograničenja pomažu vam da osigurate da su podaci sadržani u stupcu ili grupi ograničenja stupaca jedinstveni.

Primjer

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

2) NIJE nulta ograničenja

Ograničenje not-null definira da stupac nikada ne bi trebao biti null vrijednost. Ova vrsta ograničenja vrlo je slična stvaranju ograničenja provjere. Međutim, PostgreSQL stvara ograničenje koje nije nula, što je učinkovitije. Problem s ovom metodom je taj što ne možete dati eksplicitna imena ograničenjima koja nisu nula.

Ograničenje not null nije zadano PostgreSQL standard i ne bi se trebao koristiti u prijenosnim aplikacijama. Kasnije je dodan u PostgreSQL kako bi bio kompatibilan s nekim drugim DBMS sustavi. Mnogi ga koriste jer olakšava promjenu ograničenja u datoteci skripte.

Sintaksa:

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

3) PostgreSQL Provjerite ograničenja

Ograničenje provjere pomaže vam odrediti da vrijednost u nekom stupcu mora biti Booleov izraz.

The PostgreSQL check constraint sastoji se od ključne riječi CHECK iza koje slijedi izraz u zagradama. Ograničenje provjere Postgres bi trebalo uključiti stupac koji bi trebao biti ograničen jer inače nema smisla.

Sintaksa:

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

Primjer:

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) Ograničenja primarnog ključa

Ograničenje primarnog ključa omogućuje vam korištenje stupca ili grupe stupaca kao jedinstvenog identifikatora za retke u tablici. Da biste definirali ograničenja primarnog ključa, vaše deklarirane vrijednosti trebaju biti i jedinstvene, a ne null. To omogućuje da dvije definicije tablice prihvate iste podatke.

Sintaksa:

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

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

Primjer 2:

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

Primjer 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) Ograničenja stranog ključa

Ograničenje stranog ključa navodi da se vrijednosti u stupcu ili grupi stupaca moraju podudarati s vrijednostima koje se pojavljuju u nekom retku druge tablice. To vam omogućuje da uspostavite referentni integritet između dvije povezane tablice.

Pretpostavimo da imate tablicu koja pohranjuje narudžbe za različite proizvode. Želite osigurati da tablica sadrži redoslijede proizvoda koji postoje. Dakle, ovdje trebate definirati ograničenje stranog ključa u tablici narudžbi koja upućuje na tablicu proizvoda.

Sintaksa:

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

Primjer 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) Ograničenja isključenja

Ograničenja isključenja pomažu vam da budete sigurni da će, ako se bilo koja dva retka uspoređuju jedan s drugim u navedenim stupcima ili izrazima s navedenim operatorima, barem jedna od ovih usporedbi operatora vratiti nultu ili netočnu vrijednost. Dodavanje ovoga PostgreSQL ograničenje će automatski stvoriti indeks tipa navedenog u deklaraciji ograničenja.

Primjer:

Na primjer, sljedeće PostgreSQL naredba stvara novu tablicu pod nazivom Škola i dodaje pet stupaca.

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

Na primjer, sljedeće PostgreSQL naredba stvara novu tablicu pod nazivom Grana, koja dodaje tri stupca. Stupac STD_ID je strani ključ i upućuje na ID polje tablice ŠKOLA6.

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