SQL omezení jsou základními prvky návrh relační databáze které zajišťují integrita přesnost a spolehlivost dat uložených v databázi. Vynucením specifických pravidel pro sloupce tabulky pomáhají omezení SQL udržovat konzistenci dat, zabraňují neplatným datovým záznamům a optimalizují výkon dotazů.
V tomto článku podrobně vysvětlíme nejběžnější omezení SQL, poskytneme jasné příklady a vysvětlíme, jak je efektivně implementovat.
Co jsou omezení SQL?
SQL omezení jsou pravidla aplikovaná sloupců nebo tabulky v a relační databáze omezit typ dat, která mohou být vložena aktualizováno nebo smazáno . Tato pravidla zajišťují, že data jsou platná konzistentně a dodržují obchodní logiku resp požadavky na databázi . Omezení lze vynutit během vytváření tabulky nebo později pomocí ALTER TABLE prohlášení. Hrají zásadní roli při udržování kvality a integrity vaší databáze.
Typy SQL omezení
SQL poskytuje několik typů omezení pro správu různých aspektů integrity dat. Tato omezení jsou zásadní pro zajištění toho, aby data splňovala požadavky přesnost konzistence a platnost . Pojďme si projít každý z nich s podrobným vysvětlením a příklady.
1. NOT NULL omezení
The NENÍ NULL omezení zajišťuje, že sloupec nemůže obsahovat hodnoty NULL. To je důležité zejména pro sloupce, kde je hodnota zásadní pro identifikaci záznamů nebo provádění výpočtů. Pokud je sloupec definován jako NENÍ NULL každý řádek musí obsahovat hodnotu pro daný sloupec.
Příklad:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
Vysvětlení: Ve výše uvedeném příkladu obaIDaNAMEsloupce jsou definovány pomocí NENÍ NULL omezení, což znamená, že každý student musí mítIDaNAMEhodnota.
2. UNIKÁTNÍ omezení
The UNIKÁTNÍ omezení zajišťuje, že všechny hodnoty ve sloupci jsou odlišné ve všech řádcích tabulky. Na rozdíl od PRIMÁRNÍ KLÍČ což vyžaduje jedinečnost a nepovoluje hodnoty NULL, omezení UNIQUE umožňuje hodnoty NULL, ale stále vynucuje jedinečnost pro položky, které nejsou NULL.
Příklad:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
Vysvětlení : TadyIDsloupec musí mít jedinečné hodnoty zajišťující, že žádní dva studenti nemohou sdílet totéžID. Můžeme jich mít víc UNIKÁTNÍ omezení v tabulce.
3. Omezení PRIMÁRNÍHO KLÍČE
A PRIMÁRNÍ KLÍČ omezení je kombinací NENÍ NULL a UNIKÁTNÍ omezení. Jednoznačně identifikuje každý řádek v tabulce. Stůl může mít pouze jeden PRIMÁRNÍ KLÍČ a nemůže přijímat hodnoty NULL. Obvykle se používá pro sloupec, který bude sloužit jako identifikátor záznamů.
Příklad:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
Vysvětlení: V tomto případěIDsloupec je nastaven jako primární klíč, což zajišťuje, že ID každého studenta je jedinečné a nemůže mít hodnotu NULL.
4. Omezení ZAHRANIČNÍHO KLÍČE
A CIZÍ KLÍČ omezení propojuje sloupec v jedné tabulce s primární klíč v jiné tabulce. Tento vztah pomáhá udržovat referenční integrita zajištěním, že hodnota v cizí klíč sloupec odpovídá platnému záznamu v odkazované tabulce.
Tabulka objednávek:
| O_ID | ORDER_NO | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
Tabulka zákazníků:
| C_ID | JMÉNO | ADRESA |
|---|---|---|
| 1 | RAMESH | DILLÍ |
| 2 | SURESH | NOIDA |
| 3 | DARMÉŠI | GURGAON |
Jak jasně vidíme, že pole C_ID v Tabulka objednávek je primární klíč v tabulce Zákazníci, tj. jednoznačně identifikuje každý řádek v Zákazníci tabulka. Jedná se tedy o Cizí klíč v tabulce Objednávky.
Pří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)
)
Vysvětlení: V tomto příkladuC_IDsloupec vOrderstabulka je cizí klíč, který odkazuje naC_IDsloupec vCustomerstabulka. Tím je zajištěno, že do souboru lze vložit pouze platná ID zákazníkůOrderstabulka.
ankita dave
5. CHECK Omezení
The KONTROLA omezení nám umožňuje určit podmínku, kterou musí data splňovat, než budou vložena do tabulky. To lze použít k vynucení pravidel, jako je zajištění toho, aby hodnota sloupce splňovala určitá kritéria (např. věk musí být vyšší než 18).
Příklad:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);
Vysvětlení: Ve výše uvedené tabulce KONTROLA omezení zajišťuje, že do tabulky mohou být vloženi pouze studenti ve věku 18 let nebo starší.
6. VÝCHOZÍ omezení
The VÝCHOZÍ omezení poskytuje výchozí hodnotu pro sloupec, pokud není při vkládání zadána žádná hodnota. To je užitečné pro zajištění toho, aby určité sloupce měly vždy smysluplnou hodnotu, i když uživatel žádnou neposkytne
Příklad:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
Vysvětlení: Zde, pokud není uvedena žádná hodnotaAGEběhem vkládání bude automaticky přiřazena výchozí hodnota 18.
Jak určit omezení v SQL
Omezení lze zadat během procesu vytváření tabulky pomocí CREATE TABLE prohlášení. Navíc lze omezení upravit nebo přidat do existujících tabulek pomocíALTER TABLEprohlášení.
Syntaxe pro vytváření omezení:
CREATE TABLE název_tabulky
(
sloupec1 datový_typ [název_omezení]
sloupec2 datový_typ [název_omezení]
sloupec3 datový_typ [název_omezení]
...
);
Po vytvoření tabulky můžeme také přidat nebo odebrat omezení:
Příklad přidání omezení:
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
Závěr
Omezení SQL jsou nezbytná pro údržbu integrita dat a zajištění konzistence v relačních databázích. Pochopení a efektivní implementace těchto omezení pomůže při navrhování robustních bezchybných databází. Pákovým efektem NENÍ NULL UNIKÁTNÍ PRIMÁRNÍ KLÍČ KONTROLA ZAHRANIČNÍHO KLÍČE VÝCHOZÍ A INDEX můžete zajistit, aby byla vaše databáze optimalizována pro přesnost a výkon .
Vytvořit kvíz