SQL | Korlátozások

SQL megszorítások nélkülözhetetlen elemei relációs adatbázis tervezés amelyek biztosítják a integritás pontosság és megbízhatóság az adatbázisban tárolt adatokról. Azáltal, hogy speciális szabályokat kényszerítenek ki a táblázat oszlopaira, az SQL-korlátok segítenek fenntartani az adatok konzisztenciáját, megakadályozva az érvénytelen adatbevitelt, és optimalizálják a lekérdezések teljesítményét.

Ebben a cikkben részletesen elmagyarázzuk a leggyakoribb SQL-megszorításokat, világos példákat adva és elmagyarázva, hogyan kell hatékonyan implementálni őket.

Mik azok az SQL-korlátok?

SQL megszorítások szabályok vonatkoznak rájuk oszlopok vagy táblázatok a relációs adatbázis hogy korlátozzuk a lehetséges adatok típusát behelyezve frissítve vagy törölve . Ezek a szabályok biztosítják, hogy az adatok érvényesek, következetesek és megfeleljenek az üzleti logikának ill adatbázis követelményei . A megszorításokat a tábla létrehozása során vagy később a ALTER TABLE nyilatkozat. Alapvető szerepet játszanak az adatbázis minőségének és integritásának megőrzésében.

Az SQL-korlátozások típusai 

Az SQL többféle megszorítást biztosít az adatintegritás különböző aspektusainak kezelésére. Ezek a megszorítások elengedhetetlenek ahhoz, hogy az adatok megfeleljenek a követelményeknek pontosság következetesség és érvényesség . Nézzük meg mindegyiket részletes magyarázatokkal és példákkal.

1. NOT NULL kényszer

A NEM NULL megszorítás biztosítja, hogy egy oszlop ne tartalmazzon NULL értékeket. Ez különösen fontos azoknál az oszlopoknál, ahol egy érték elengedhetetlen a rekordok azonosításához vagy számítások elvégzéséhez. Ha egy oszlopot úgy határoztunk meg NEM NULL minden sornak tartalmaznia kell az adott oszlop értékét.

Példa:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);

Magyarázat: A fenti példában mind a ID és NAME az oszlopokat a NEM NULL megszorítás, ami azt jelenti, hogy minden tanulónak rendelkeznie kell egy ID és NAME érték.

2. EGYEDI kényszer

A EGYEDÜLÁLLÓ A megszorítás biztosítja, hogy egy oszlopban lévő összes érték elkülönüljön a táblázat összes sorában. Ellentétben a PRIMER KULCS amely egyediséget igényel, és nem engedélyezi a NULL értékeket, az UNIQUE megszorítás engedélyezi a NULL értékeket, de továbbra is érvényesíti az egyediséget a nem NULL bejegyzéseknél.

Példa:

 CREATE TABLE Student   
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);

Magyarázat : Itt a ID oszlopnak egyedi értékekkel kell rendelkeznie, amelyek biztosítják, hogy két tanuló ne oszthasson ugyanazt ID . Többet is kaphatunk EGYEDÜLÁLLÓ korlátozás egy táblázatban.

3. PRIMER KULCS kényszer  

A PRIMER KULCS megszorítás kombinációja NEM NULL és EGYEDÜLÁLLÓ korlátok. Egyedileg azonosítja a táblázat minden sorát. Egy asztalnak csak egy lehet PRIMER KULCS és nem fogad el NULL értékeket. Általában ezt az oszlopot használják, amely a rekordok azonosítójaként fog szolgálni.

Példa:

 CREATE TABLE Student   
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);

Magyarázat: Ebben az esetben a ID oszlop elsődleges kulcsként van beállítva, amely biztosítja, hogy minden tanuló azonosítója egyedi legyen, és ne legyen NULL.

4. IDEGEN KULCS Kényszer

A IDEGEN KULCS megszorítás az egyik tábla oszlopát a elsődleges kulcs egy másik táblázatban. Ez a kapcsolat segít fenntartani referenciális integritás biztosítva, hogy az érték a idegen kulcs oszlop megegyezik a hivatkozott tábla egy érvényes rekordjával.

Rendelési táblázat:

O_ID RENDELÉS_SZÁM C_ID
1 2253 3
2 3325 3
3 4521 2
4 8532 1

Vásárlói táblázat:

C_ID NÉV CÍM
1 RAMESH DELHI
2 SURESH NOIDA
3 DHARMESH GURGAON

Amint jól látjuk, hogy a mező C_ID be Rendelési táblázat az elsődleges kulcs az Ügyfelek táblában, azaz egyedileg azonosítja az egyes sorokat a Ügyfelek táblázat. Ezért ez egy idegen kulcs a rendelésekben. 

Példa:

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

Magyarázat: Ebben a példában a C_ID oszlopban a Orders táblázat egy idegen kulcs, amely a C_ID oszlopban a Customers táblázat. Ez biztosítja, hogy csak érvényes ügyfél-azonosítók kerüljenek be a Orders táblázat.

5. ELLENŐRIZZE a kényszert

A ELLENŐRZÉS A megszorítás lehetővé teszi egy olyan feltétel megadását, amelyet az adatoknak teljesíteniük kell, mielőtt beillesztik őket a táblába. Ez felhasználható szabályok érvényre juttatására, például annak biztosítására, hogy egy oszlop értéke megfelel-e bizonyos feltételeknek (például az életkornak 18 évnél nagyobbnak kell lennie).

Példa:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);

Magyarázat: A fenti táblázatban a ELLENŐRZÉS megszorítás biztosítja, hogy csak 18 éves vagy annál idősebb tanulók kerüljenek be a táblázatba.

6. ALAPÉRTELMEZETT kényszer

A ALAPÉRTELMEZETT megszorítás alapértelmezett értéket ad egy oszlophoz, ha nincs megadva érték a beillesztés során. Ez azért hasznos, mert bizonyos oszlopoknak mindig van értelmes értéke, még akkor is, ha a felhasználó nem ad meg

Példa:

 CREATE TABLE Student   
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);

Magyarázat: Itt, ha nincs megadva érték AGE beszúrás közben az alapértelmezett 18-as érték automatikusan hozzárendelődik.

Megszorítások megadása SQL-ben

A megszorítások megadhatók a táblázat létrehozási folyamata során a CREATE TABLE nyilatkozat. Ezenkívül a megszorítások módosíthatók vagy hozzáadhatók a meglévő táblákhoz a ALTER TABLE nyilatkozat.

Szintaxis megszorítások létrehozásához:

TÁBLÁZAT LÉTREHOZÁSA táblanév

(

oszlop1 adattípus [megszorítás_neve]

oszlop2 adattípus [megszorítás_neve]

oszlop3 adattípus [megszorítás_neve]

...

);

Megszorításokat is hozzáadhatunk vagy eltávolíthatunk a táblázat létrehozása után:

Példa megszorítás hozzáadására:

 ALTER TABLE Student   
ADD CONSTRAINT unique_student_id UNIQUE (ID);

Következtetés

Az SQL megszorítások elengedhetetlenek a karbantartáshoz adatintegritás valamint a relációs adatbázisok konzisztenciájának biztosítása. Ezeknek a korlátozásoknak a megértése és hatékony megvalósítása segít robusztus, hibamentes adatbázisok tervezésében. A tőkeáttétellel NEM NULL EGYEDI ELSŐDLEGES KULCS IDEGEN KULCS ELLENŐRZÉSE ALAPÉRTELMEZETT és INDEX biztos lehet benne, hogy az adatbázis optimalizálva van pontosság és teljesítmény .

Kvíz létrehozása