logo

SQL | Obmedzenia

SQL obmedzenia sú základnými prvkami v návrh relačnej databázy ktoré zabezpečujú bezúhonnosť presnosť a spoľahlivosť údajov uložených v databáze. Presadzovaním špecifických pravidiel pre stĺpce tabuľky pomáhajú obmedzenia SQL udržiavať konzistenciu údajov, čím zabraňujú neplatným záznamom údajov a optimalizujú výkon dotazov.

V tomto článku podrobne vysvetlíme najbežnejšie obmedzenia SQL, poskytneme jasné príklady a vysvetlíme, ako ich efektívne implementovať.

Čo sú obmedzenia SQL?

SQL obmedzenia sú pravidlá aplikované na stĺpci alebo tabuľky v a relačná databáza obmedziť typ údajov, ktoré môžu byť vložené aktualizované alebo vymazané . Tieto pravidlá zabezpečujú, že údaje sú platné konzistentne a dodržiavajú obchodnú logiku resp požiadavky na databázu . Obmedzenia môžu byť vynútené počas vytvárania tabuľky alebo neskôr pomocou ALTER TABLE vyhlásenie. Hrajú zásadnú úlohu pri udržiavaní kvality a integrity vašej databázy.



Typy SQL obmedzení 

SQL poskytuje niekoľko typov obmedzení na riadenie rôznych aspektov integrity údajov. Tieto obmedzenia sú nevyhnutné na zabezpečenie toho, aby údaje spĺňali požiadavky presnosť konzistencia a platnosť . Poďme si prejsť každý z nich s podrobnými vysvetleniami a príkladmi.

1. Obmedzenie NOT NULL

The NIE JE NULL obmedzenie zaisťuje, že stĺpec nemôže obsahovať hodnoty NULL. Toto je obzvlášť dôležité pre stĺpce, kde je hodnota nevyhnutná na identifikáciu záznamov alebo vykonávanie výpočtov. Ak je stĺpec definovaný ako NIE JE NULL každý riadok musí obsahovať hodnotu pre daný stĺpec.

dlhý na šnúru

Príklad:

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

Vysvetlenie: Vo vyššie uvedenom príklade obeIDaNAMEstĺpce sú definované s NIE JE NULL obmedzenie znamená, že každý študent musí maťIDaNAMEhodnotu.

2. UNIKÁTNE obmedzenie

The UNIKÁTNY obmedzenie zaisťuje, že všetky hodnoty v stĺpci sú odlišné vo všetkých riadkoch tabuľky. Na rozdiel od PRIMÁRNY KĽÚČ čo vyžaduje jedinečnosť a nepovoľuje hodnoty NULL, obmedzenie UNIQUE umožňuje hodnoty NULL, ale stále vynucuje jedinečnosť pre položky, ktoré nie sú NULL.

Príklad:

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

Vysvetlenie : TuIDstĺpec musí mať jedinečné hodnoty, ktoré zabezpečia, že dvaja študenti nemôžu zdieľať to istéID. Môžeme ich mať viacero UNIKÁTNY obmedzenie v tabuľke.

index zoznamu

3. Obmedzenie PRIMÁRNY KĽÚČ  

A PRIMÁRNY KĽÚČ obmedzenie je kombináciou NIE JE NULL a UNIKÁTNY obmedzenia. Jedinečne identifikuje každý riadok v tabuľke. Stôl môže mať len jeden PRIMÁRNY KĽÚČ a nemôže akceptovať hodnoty NULL. Zvyčajne sa používa pre stĺpec, ktorý bude slúžiť ako identifikátor záznamov.

Príklad:

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

Vysvetlenie: V tomto prípadeIDstĺpec je nastavený ako primárny kľúč, ktorý zabezpečuje, že ID každého študenta je jedinečné a nemôže mať hodnotu NULL.

4. ZAHRANIČNÝ KĽÚČ Obmedzenie

A CUDZÍ KĽÚČ obmedzenie spája stĺpec v jednej tabuľke s primárny kľúč v inej tabuľke. Tento vzťah pomáha udržiavať referenčná integrita zabezpečením, že hodnota v cudzí kľúč stĺpec sa zhoduje s platným záznamom v odkazovanej tabuľke.

Tabuľka objednávok:

O_IDORDER_NOC_ID
122533
233253
345212
485321

Tabuľka zákazníkov:

C_IDNAMEADRESA
1RAMESHDILLÍ
2SURESHNOIDA
3DHARMÉŠSKÝGURGAON

Ako jasne vidíme, že pole C_ID v Tabuľka objednávok je primárny kľúč v tabuľke Zákazníci, tj jednoznačne identifikuje každý riadok v zákazníkov tabuľky. Ide teda o cudzí kľúč v tabuľke objednávok. 

Príklad:

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

Vysvetlenie: V tomto príkladeC_IDstĺpec vOrderstabuľka je cudzí kľúč, ktorý odkazuje naC_IDstĺpec vCustomerstabuľky. To zaisťuje, že do súboru je možné vložiť iba platné ID zákazníkovOrderstabuľky.

5. CHECK Obmedzenie

The KONTROLA obmedzenie nám umožňuje určiť podmienku, ktorú musia dáta spĺňať pred vložením do tabuľky. Dá sa to použiť na vynútenie pravidiel, ako je zabezpečenie toho, aby hodnota stĺpca spĺňala určité kritériá (napr. vek musí byť vyšší ako 18)

Príklad:

java štruktúra
CREATE TABLE Student  
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);

Vysvetlenie: Vo vyššie uvedenej tabuľke KONTROLA obmedzenie zaisťuje, že do tabuľky môžu byť vložení iba študenti vo veku 18 rokov alebo starší.

6. DEFAULT Obmedzenie

The DEFAULT obmedzenie poskytuje predvolenú hodnotu pre stĺpec, keď počas vkladania nie je zadaná žiadna hodnota. Je to užitočné na zabezpečenie toho, aby určité stĺpce mali vždy zmysluplnú hodnotu, aj keď ju používateľ neposkytne

Príklad:

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

Vysvetlenie: Tu, ak nie je uvedená žiadna hodnotaAGEpočas vkladania sa automaticky priradí predvolená hodnota 18.

Ako určiť obmedzenia v SQL

Obmedzenia môžu byť špecifikované počas procesu vytvárania tabuľky pomocou CREATE TABLE vyhlásenie. Okrem toho môžu byť obmedzenia upravené alebo pridané do existujúcich tabuliek pomocouALTER TABLEvyhlásenie.

Syntax pre vytváranie obmedzení:

regulárny výraz v jazyku Java

CREATE TABLE názov_tabuľky

(

stĺpec1 typ_údajov [názov_obmedzenia]

column2 data_type [názov_obmedzenia]

column3 data_type [názov_obmedzenia]

...

);

vba

Obmedzenia môžeme pridať alebo odstrániť aj po vytvorení tabuľky:

Príklad na pridanie obmedzenia:

ALTER TABLE Student  
ADD CONSTRAINT unique_student_id UNIQUE (ID);

Záver

Obmedzenia SQL sú nevyhnutné na udržanie integrita údajov a zabezpečenie konzistencie v relačných databázach. Pochopenie a efektívna implementácia týchto obmedzení pomôže pri navrhovaní robustných bezchybných databáz. Pákovým efektom NIE JE NULL JEDINEČNÝ PRIMÁRNY KĽÚČ KONTROLA CUDZÉHO KĽÚČA PREDVOĽNE a INDEX môžete zabezpečiť, aby bola vaša databáza optimalizovaná pre presnosť a výkon .

Vytvoriť kvíz