Darsliklar SQL Cheklovlar FK, PK, ...

SQL SQL Cheklovlar FK, PK, ...

Cheklovlar (Constraints: PK, FK, …) — jadval ustunlariga qo’yiladigan qoidalar bo’lib, ular ma’lumotning to’g’ri va ishonchli bo’lishini ta’minlaydi. Birlamchi kalit (PRIMARY KEY), tashqi kalit (FOREIGN KEY), noyoblik va majburiylik — bularning bari cheklovlardir. Ular bazani “buzilmas” qiladi.

Cheklov (constraint)ustunga qo’yiladigan qoida bo’lib, unga qanday qiymat kirishini nazorat qiladi. Asosiylari: PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE.

Asosiy cheklovlar

Eng ko’p ishlatiladigan cheklovlarni jadvalda ko’ramiz:

Cheklov Vazifasi
PRIMARY KEY har qatorni noyob aniqlaydi
FOREIGN KEY boshqa jadvalga bog’laydi
NOT NULL bo’sh qiymatni taqiqlaydi
UNIQUE takroriy qiymatni taqiqlaydi
DEFAULT standart qiymat beradi

PRIMARY KEY — birlamchi kalit

PRIMARY KEY har bir qatorni noyob tarzda aniqlaydigan ustun. U takrorlanmas va bo’sh bo’lmasligi kerak:

CREATE TABLE foydalanuvchilar (
    id INT PRIMARY KEY,
    ism VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);

Bu jadvalda uch cheklov ishlatildi:

Ustun Cheklov Ma’nosi
id PRIMARY KEY har foydalanuvchi noyob id
ism NOT NULL ism bo’sh bo’lmaydi
email UNIQUE email takrorlanmaydi

id birlamchi kalit — har bir foydalanuvchini ajratib turadi. ism NOT NULL — majburiy. email UNIQUE — ikki foydalanuvchi bir xil email ishlata olmaydi.

FOREIGN KEY — tashqi kalit

FOREIGN KEY bir jadvalni boshqasiga bog’laydi. U JOIN darslarida ko’rgan bog’lanishning asosidir. Masalan, buyurtmalar jadvali foydalanuvchilar ga bog’lanadi:

CREATE TABLE buyurtmalar (
    id INT PRIMARY KEY,
    foydalanuvchi_id INT,
    mahsulot VARCHAR(100),
    FOREIGN KEY (foydalanuvchi_id) REFERENCES foydalanuvchilar(id)
);

FOREIGN KEY (foydalanuvchi_id) REFERENCES foydalanuvchilar(id)foydalanuvchi_id ustuni foydalanuvchilar jadvalidagi id ga ishora qilishini bildiradi.

Tashqi kalitning himoyasi

FOREIGN KEY ma’lumot yaxlitligini himoya qiladi: mavjud bo’lmagan foydalanuvchiga buyurtma qo’shib bo’lmaydi. Masalan, foydalanuvchilar jadvalida faqat 1, 2, 3-idlar bor:

Buyurtma foydalanuvchi_id Holati
Telefon 1 Ruxsat (Farrux bor)
Noutbuk 2 Ruxsat (Master Sherkulov bor)
Soat 99 Rad etiladi (99-id yo’q)

foydalanuvchi_id = 99 bilan buyurtma qo’shishga urinsangiz, baza uni rad etadi — chunki bunday foydalanuvchi yo’q. Bu “bog’lanmagan” (yetim) yozuvlarning oldini oladi va bazani ishonchli qiladi.

Xulosa

Bu bo’limda cheklovlarni — PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE — va ular ma’lumot yaxlitligini qanday himoya qilishini ko’rib chiqdik. Cheklovlar — ishonchli bazaning poydevoridir.