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.
regressziós kifejezés java-ban
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 aIDésNAMEaz oszlopokat a NEM NULL megszorítás, ami azt jelenti, hogy minden tanulónak rendelkeznie kell egyIDésNAMEé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 aIDoszlopnak egyedi értékekkel kell rendelkeznie, amelyek biztosítják, hogy két tanuló ne oszthasson ugyanaztID. 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 aIDoszlop 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:
bináris fa vs bináris keresőfa
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 aC_IDoszlopban aOrderstáblázat egy idegen kulcs, amely aC_IDoszlopban aCustomerstáblázat. Ez biztosítja, hogy csak érvényes ügyfél-azonosítók kerüljenek be aOrderstá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.
hoszt linux
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ékAGEbeszú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 aALTER TABLEnyilatkozat.
Szintaxis megszorítások létrehozásához:
TÁBLÁZAT LÉTREHOZÁSA táblanév
java lista karakterlánc(
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