PostgreSQL Piirangud: tüübid näitega
Mis on Piirang?
Andmetüüpe kasutatakse tabelisse salvestatava teabe piiramiseks. Kuid sellel lähenemisviisil on 2 probleemi.
- 1. väljaanne: Andmetüüpide poolt kehtestatud piirangud ei ole teatud rakenduste jaoks piisavad. Näiteks peaks kauba hinda sisaldav veerg aktsepteerima ainult positiivseid väärtusi. Siiski pole konkreetset andmetüüpi, mis aktsepteeriks ainult positiivset arvu.
- Väljaanne 2: võite soovida piirata rea/veeru andmetes olevat teavet teiste veergude või ridade suhtes. Näiteks üksuse teavet sisaldavas tabelis peaks iga kordumatu veerupiirangu jaoks olema ainult üks rida.
Selliste probleemide lahendamiseks ja nende reeglite määratlemiseks võite kasutada piirangs PostgreSQL. Lihtsamalt öeldes on piirangud reeglid, mida teie andmed peavad järgima. Tabelipiirangute lisamine võimaldab andmebaasisüsteemil jõustada andmete terviklikkust.
Seega, kui kasutaja üritab salvestada andmeid veerus, mis rikub määratletud piirangut, tuleks kuvada veateade.
Tüüp PostgreSQL Piirangud
Vaatame erinevaid tüüpe PostgreSQL piirang, mille saate andmete õigsuse tagamiseks luua:
- Ainulaadne
- Mitte Null
- Kontrollige Piirangut
- Esmane võti
- võõrvõti
- Täitmise piirang
1) PostgreSQL Unikaalne piirang
Ainulaadsed piirangud aitavad teil tagada, et veerus või veerupiirangute rühmas sisalduvad andmed on kordumatud.
Näide
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
2) NOT Null Constraints
Mitte-null-piirang määratleb, et veerg ei tohi kunagi olla nullväärtus. Seda tüüpi piirangud on väga sarnased kontrollpiirangu loomisega. Siiski PostgreSQL loob mitte-null-piirangu, mis on tõhusam. Selle meetodi probleem seisneb selles, et mitte-null-piirangutele ei saa anda selgeid nimesid.
Mitte null-piirang ei ole vaikeväärtus PostgreSQL standardne ja seda ei tohiks kasutada kaasaskantavates rakendustes. See lisati hiljem PostgreSQL et see mõne muuga ühilduks DBMS-süsteemid. Paljud kasutavad seda, kuna see muudab skriptifailis piirangu ümberlülitamise lihtsaks.
süntaksit:
CREATE TABLE Item ( product no integer NULL, Item_name text NULL, Itm_price numeric NULL );
3) PostgreSQL Kontrollige piiranguid
Kontrollpiirang aitab teil määrata, et mõne veeru väärtus peab olema Boole'i avaldis.
. PostgreSQL check constraint koosneb märksõnast CHECK, millele järgneb sulgudes avaldis. Kontrollpiirang Postgres peaks hõlmama veergu, mida tuleks piirata, muidu pole sellel mõtet.
süntaksit:
CREATE TABLE Item( Item_id INTEGER PRIMARY KEY, name VARCHAR(20), Item_price NUMERIC CHECK(price>0) );
Näide:
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) Primary Key Constraints
Primaarvõtme piirang võimaldab kasutada veergu või veergude rühma tabeli ridade kordumatu identifikaatorina. Primaarvõtme piirangute määratlemiseks peaksid deklareeritud väärtused olema nii kordumatud kui ka nullid. See võimaldab kahel tabelidefinitsioonil aktsepteerida samu andmeid.
süntaksit:
Create Table Item( Item_no, integer PRIMARY KEY, Item_name text, Item_Price numeric );
Näide 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) );
Näide 2:
CREATE TABLE first( A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl) ); Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER. );
Näide 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) Võõrvõtme piirangud
Võõrvõtmepiirang määrab, et veerus või veergude rühmas olevad väärtused peavad ühtima teise tabeli mõnel real kuvatavate väärtustega. See võimaldab teil määrata kahe seotud tabeli vahelise viiteterviklikkuse.
Oletame, et teil on tabel, mis salvestab erinevate toodete tellimusi. Soovite tagada, et tabel sisaldab olemasolevate toodete tellimusi. Seega peate siin määratlema tellimuste tabelis võõrvõtme piirangu, mis viitab toodete tabelile.
süntaksit:
CREATE TABLE ( id INTEGER PRIMARY KEY. name VARCHAR(IO) >; CREATE TABLE testable Id INTEGER PRIMARY KEY read INTEGER REFERENCES (id) );
Näide 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) Väljajätmise piirangud
Välistamispiirangud aitavad teil veenduda, et kui määratud veergudes või määratud operaatoritega avaldistes võrreldakse omavahel kaht rida, tagastab vähemalt üks nendest operaatorite võrdlustest null- või valeväärtuse. Selle lisamine PostgreSQL constraint loob automaatselt piirangu deklaratsioonis määratud tüüpi indeksi.
Näide:
Näiteks järgmine PostgreSQL lause loob uue tabeli nimega Kool ja lisab viis veergu.
CREATE TABLE SCHOOL6( STDID INT PRIMARY KEY NOT NULL, STDNAME TEXT NOT NULL, STDAGE INT NOT NULL, FEEDBACK CHAR(50), STANDARD INT NOT NULL,
Näiteks järgmine PostgreSQL lause loob uue tabeli nimega Branch, mis lisab kolm veergu. Veerg STD_ID on võõrvõti ja see viitab tabeli KOOL6 ID-väljale.
CREATE TABLE BRANCH ( BRANCHCODE INT PRIMARY KEY NOT NULL, BRAMCHNAME CHAR(50) NOT NULL, STD_ID INT references SCHOOL6(ID) );