SQL ograničenja bitni su elementi u dizajn relacijske baze podataka koji osiguravaju integritet točnost i pouzdanost podataka pohranjenih u bazi podataka. Primjenom posebnih pravila na stupce tablice SQL ograničenja pomažu u održavanju dosljednosti podataka sprječavajući nevažeće unose podataka i optimizirajući izvedbu upita.
U ovom ćemo članku detaljno objasniti najčešća SQL ograničenja dajući jasne primjere i objašnjavajući kako ih učinkovito implementirati.
Što su SQL ograničenja?
SQL ograničenja primjenjuju se pravila stupci ili stolovi u a relacijska baza podataka ograničiti vrstu podataka koji mogu biti umetnut ažuriran ili izbrisano . Ova pravila osiguravaju da su podaci valjani, dosljedni i da se pridržavaju poslovne logike ili zahtjevi baze podataka . Ograničenja se mogu nametnuti tijekom izrade tablice ili kasnije pomoću ALTER TABLE izjava. Oni igraju ključnu ulogu u održavanju kvalitete i integriteta vaše baze podataka.
Vrste SQL ograničenja
SQL nudi nekoliko vrsta ograničenja za upravljanje različitim aspektima integriteta podataka. Ta su ograničenja ključna kako bi se osiguralo da podaci ispunjavaju zahtjeve točnost dosljednost i valjanost . Prođimo kroz svaki od njih s detaljnim objašnjenjima i primjerima.
1. NIJE NULL Ograničenje
The NIJE NULL ograničenje osigurava da stupac ne može sadržavati NULL vrijednosti. Ovo je osobito važno za stupce u kojima je vrijednost bitna za identificiranje zapisa ili izvođenje izračuna. Ako je stupac definiran kao NIJE NULL svaki red mora sadržavati vrijednost za taj stupac.
Primjer:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
Obrazloženje: U gornjem primjeru obaIDiNAMEstupci su definirani s NIJE NULL ograničenje što znači da svaki učenik mora imatiIDiNAMEvrijednost.
2. JEDINSTVENO ograničenje
The JEDINSTVENO ograničenje osigurava da su sve vrijednosti u stupcu različite u svim recima u tablici. Za razliku od PRIMARNI KLJUČ koji zahtijeva jedinstvenost i ne dopušta NULL-ove, UNIQUE ograničenje dopušta NULL vrijednosti, ali još uvijek nameće jedinstvenost za ne-NULL unose.
Primjer:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
Obrazloženje : OvdjeIDstupac mora imati jedinstvene vrijednosti koje osiguravaju da dva učenika ne mogu dijeliti istiID. Možemo imati više od jednog JEDINSTVENO ograničenje u tablici.
3. Ograničenje PRIMARNOG KLJUČA
A PRIMARNI KLJUČ ograničenje je kombinacija NIJE NULL i JEDINSTVENO ograničenja. Jedinstveno identificira svaki redak u tablici. Stol može imati samo jedan PRIMARNI KLJUČ i ne može prihvatiti NULL vrijednosti. Ovo se obično koristi za stupac koji će služiti kao identifikator zapisa.
Primjer:
java popis
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
Obrazloženje: U ovom slučajuIDpostavlja se kao primarni ključ čime se osigurava da je ID svakog učenika jedinstven i ne može biti NULL.
4. Ograničenje FOREIGN KEY
A STRANI KLJUČ ograničenje povezuje stupac u jednoj tablici s primarni ključ u drugoj tablici. Ovaj odnos pomaže u održavanju referencijalni integritet osiguravajući da vrijednost u strani ključ stupac odgovara važećem zapisu u referentnoj tablici.
Tablica narudžbi:
| O_ID | NARUDŽBA_BR | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
Tablica kupaca:
| C_ID | IME | ADRESA |
|---|---|---|
| 1 | RAMESH | DELHI |
| 2 | SUREŠ | NOIDA |
| 3 | DHARMESH | GURGAON |
Kao što jasno vidimo da polje C_ID u Tablica narudžbi je primarni ključ u tablici Kupci, tj. jedinstveno identificira svaki red u Kupci stol. Stoga je to strani ključ u tablici Narudžbe.
Primjer:
hashset vs hashmap
CREATE TABLE Orders
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)
Obrazloženje: U ovom primjeruC_IDstupac uOrderstablica je strani ključ koji upućuje naC_IDstupac uCustomersstol. Ovo osigurava da se samo valjani ID-ovi korisnika mogu umetnuti uOrdersstol.
5. PROVJERITE Ograničenje
The PROVJERITI ograničenje nam omogućuje da odredimo uvjet koji podaci moraju zadovoljiti prije nego što se umetnu u tablicu. Ovo se može koristiti za provođenje pravila kao što je osiguravanje da vrijednost stupca zadovoljava određene kriterije (npr. dob mora biti veća od 18 godina)
Primjer:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);
Obrazloženje: U gornjoj tablici PROVJERITI ograničenje osigurava da se u tablicu mogu umetnuti samo studenti od 18 ili više godina.
6. DEFAULT ograničenje
The ZADANO ograničenje daje zadanu vrijednost za stupac kada nije navedena vrijednost tijekom umetanja. Ovo je korisno kako bi se osiguralo da određeni stupci uvijek imaju značajnu vrijednost čak i ako je korisnik ne unese
Primjer:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
Obrazloženje: Ovdje ako nije navedena vrijednostAGEtijekom umetanja automatski će se dodijeliti zadana vrijednost 18.
kako čitati iz csv datoteke u Javi
Kako specificirati ograničenja u SQL-u
Ograničenja se mogu odrediti tijekom procesa stvaranja tablice pomoću CREATE TABLE izjava. Dodatno se ograničenja mogu modificirati ili dodati postojećim tablicama pomoćuALTER TABLEizjava.
Sintaksa za stvaranje ograničenja:
CREATE TABLE naziv_tablice
(
vrsta_podataka stupca1 [naziv_ograničenja]
stupac2 vrsta_podataka [naziv_ograničenja]
vrsta_podatka stupca3 [naziv_ograničenja]
...
);
Također možemo dodati ili ukloniti ograničenja nakon što je tablica kreirana:
Primjer za dodavanje ograničenja:
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
Zaključak
SQL ograničenja bitna su za održavanje cjelovitost podataka te osiguravanje dosljednosti u relacijskim bazama podataka. Razumijevanje i učinkovito provođenje ovih ograničenja pomoći će u dizajniranju robusnih baza podataka bez grešaka. Iskorištavanjem NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT and INDEX možete osigurati da je vaša baza podataka optimizirana za točnost i performanse .
Napravi kviz