PostgreSQL Rajoitukset: Tyypit esimerkillä
Mikä on rajoitus?
Tietotyyppejä käytetään rajoittamaan taulukkoon tallennettavien tietojen tyyppiä. Mutta tähän lähestymistapaan liittyy 2 ongelmaa.
- Numero 1: Tietotyyppien määräämät rajoitukset eivät ole riittäviä tietyille sovelluksille. Esimerkiksi nimikkeen hinnan sisältävän sarakkeen tulee hyväksyä vain positiivisia arvoja. Ei kuitenkaan ole olemassa tiettyä tietotyyppiä, joka hyväksyy vain positiivisen luvun.
- Issue 2: Haluat ehkä rajoittaa rivin/sarakkeen tietoja suhteessa muihin sarakkeisiin tai riveihin. Esimerkiksi nimiketiedot sisältävässä taulukossa tulisi olla vain yksi rivi kutakin yksilöllistä sarakerajoitetta kohden.
Voit voittaa tällaiset ongelmat ja määrittää nämä säännöt käyttämällä rajoites PostgreSQL. Yksinkertaisesti sanottuna rajoitukset ovat sääntöjä, joita tietojesi on noudatettava. Lisäämällä taulukkorajoituksia tietokantajärjestelmä voi valvoa tietojen eheyttä.
Siksi, jos käyttäjä yrittää tallentaa tietoja sarakkeeseen, joka rikkoo määritettyä rajoitusta, näyttöön tulee virheilmoitus.
Tyyppi PostgreSQL rajoitteet
Katsotaanpa eri tyyppejä PostgreSQL rajoitus, jonka voit luoda tietojen oikeellisuuden varmistamiseksi:
- Ainutlaatuinen
- Ei tyhjä
- Tarkista rajoitus
- Pääavain
- viiteavain
- Suoritusrajoitus
1) PostgreSQL Ainutlaatuinen rajoitus
Ainutlaatuiset rajoitukset auttavat varmistamaan, että sarakkeen tai sarakerajoitusten ryhmän sisältämät tiedot ovat ainutlaatuisia.
esimerkki
CREATE TABLE Item( Item_no integer UNIQUE, Name text, );
2) EI nollarajoituksia
Ei-nolla-rajoitus määrittää, että sarake ei saa koskaan olla nolla-arvo. Tämäntyyppinen rajoitus on hyvin samanlainen kuin tarkistusrajoitteen luominen. Kuitenkin, PostgreSQL luo ei-nolla-rajoitteen, joka on tehokkaampi. Tämän menetelmän ongelmana on, että et voi antaa eksplisiittisiä nimiä ei-null-rajoituksille.
Ei null -rajoitus ei ole oletusarvo PostgreSQL vakiona, eikä sitä tule käyttää kannettavissa sovelluksissa. Se lisättiin myöhemmin PostgreSQL jotta se olisi yhteensopiva jonkun muun kanssa DBMS-järjestelmät. Monet käyttävät sitä, koska sen avulla on helppo vaihtaa rajoitus skriptitiedostossa.
Syntaksi:
CREATE TABLE Item ( product no integer NULL, Item_name text NULL, Itm_price numeric NULL );
3) PostgreSQL Tarkista Rajoitukset
Tarkistusrajoitus auttaa määrittämään, että jossakin sarakkeessa olevan arvon on oltava Boolen lauseke.
- PostgreSQL tarkistusrajoitus koostuu CHECK-avainsanasta, jota seuraa lauseke suluissa. Tarkistusrajoitteen Postgres pitäisi sisältää sarake, jota pitäisi rajoittaa, muuten siinä ei ole mitään järkeä.
Syntaksi:
CREATE TABLE Item( Item_id INTEGER PRIMARY KEY, name VARCHAR(20), Item_price NUMERIC CHECK(price>0) );
Esimerkiksi:
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
Ensisijaisen avaimen rajoituksen avulla voit käyttää saraketta tai sarakeryhmää yksilöllisenä tunnisteena taulukon riveille. Ensisijaisen avaimen rajoitusten määrittämiseksi ilmoitettujen arvojen tulee olla yksilöllisiä eivätkä nollia. Tämä sallii kahden taulukkomäärittelyn hyväksyä samat tiedot.
Syntaksi:
Create Table Item( Item_no, integer PRIMARY KEY, Item_name text, Item_Price numeric );
Esimerkki 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) );
Esimerkki 2:
CREATE TABLE first( A1 INTEGER. A2 INTEGER. PRIMARY KEY (tl) ); Second way CREATE TABLE test( tl INTEGER PRIMARY KEY, t2 INTEGER. );
Esimerkki 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) Vieraan avaimen rajoitukset
Vieraan avaimen rajoitus määrittää, että sarakkeen tai sarakeryhmän arvojen on vastattava toisen taulukon jollakin rivillä olevia arvoja. Tämän avulla voit määrittää kahden yhdistetyn taulukon välisen viittauksen eheyden.
Oletetaan, että sinulla on taulukko, joka tallentaa eri tuotteiden tilaukset. Haluat varmistaa, että taulukko sisältää olemassa olevia tuotetilauksia. Joten tässä sinun on määritettävä viiteavaimen rajoitus tilaustaulukossa, joka viittaa tuotetaulukkoon.
Syntaksi:
CREATE TABLE ( id INTEGER PRIMARY KEY. name VARCHAR(IO) >; CREATE TABLE testable Id INTEGER PRIMARY KEY read INTEGER REFERENCES (id) );
Esimerkki 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) Poissulkemisrajoitukset
Poissulkemisrajoitukset auttavat varmistamaan, että jos mitä tahansa kahta riviä verrataan toisiinsa määritetyissä sarakkeissa tai lausekkeissa määritetyillä operaattoreilla, vähintään yksi näistä operaattorivertailuista palauttaa nolla- tai väärän arvon. Lisätään tämä PostgreSQL rajoite luo automaattisesti indeksin, jonka tyyppi on määritetty rajoitusilmoituksessa.
Esimerkiksi:
Esimerkiksi seuraavat PostgreSQL lauseke luo uuden taulukon nimeltä School ja lisää viisi saraketta.
CREATE TABLE SCHOOL6( STDID INT PRIMARY KEY NOT NULL, STDNAME TEXT NOT NULL, STDAGE INT NOT NULL, FEEDBACK CHAR(50), STANDARD INT NOT NULL,
Esimerkiksi seuraavat PostgreSQL lauseke luo uuden taulukon nimeltä Branch, joka lisää kolme saraketta. Sarake STD_ID on vierasavain, ja se viittaa taulukon SCHOOL6 ID-kenttään.
CREATE TABLE BRANCH ( BRANCHCODE INT PRIMARY KEY NOT NULL, BRAMCHNAME CHAR(50) NOT NULL, STD_ID INT references SCHOOL6(ID) );