SQL Cheklovlar FK, PK, ...

SQL cheklovlar jadvaldagi ma’lumotga biror qoida joriy etish uchun ishlatiladi. Cheklovlar jadvalga qo’shish mumkin bo’lgan ma'lumotlar turini cheklash uchun ishlatiladi. Bu jadvaldagi ma'lumotlarni aniqligi va ishonchliligini ta'minlaydi. Cheklov va ma'lumotlar amali o'rtasida biror qoidabuzarlik mavjud bo'lsa, amal bekor qilinadi.

Cheklovlar ustun yoki jadval darajasida bo'lishi mumkin. Ustun darajasidagi cheklovlar ustunga taalluqli bo’ladi va jadval darajasidagi cheklovlar butun jadvalga nisbatan qo'llaniladi.

Cheklovlar CREATE TABLE kalit so’zi yordamida jadval yaratilayotgan paytda o’rnatilishi yoki ALTER TABLE yordamida mavjud jadvalga o’rnatilishi mumkin. Sintaksisi quyidagicha:

CREATE TABLE jadval_nomi (
     ustun1 malumot_turi constraint,
     ustun2 malumot_turi constraint,
     ustun3 malumot_turi constraint,
     ....
  );

SQL tilida eng ko’p qo’llaniladigan cheklov turlari quyidagilar:

  • NOT NULL – Ustunga NULL qiymat kiritishni taqiqlaydi
  • UNIQUE – Ustundagi qiymatlar takrorlanmasligini talab qiladi.
  • PRIMARY KEY - NOT NULL va UNIQUE cheklovlarning kombinatsiyasi. Jadvaldagi har bir qatorni identifikatsiya qiladi.
  • FOREIGN KEY – Jadvallar orasidagi bog’lanishni yo’qolishini oldini oladi.
  • CHECK – Ustundagi qiymat ma’lum shartni bajarishini ta’minlaydi
  • DEFAULT – Agar ustunga qiymat berilmasa, standart qiymat yuklash uchun ishlatiladi.
  • CREATE INDEX – Ma’lumotni juda tez yaratish va qaytarish uchun foydalaniladi.

Standart holatda ustunlar NULL qiymat qabul qilishi mumkin. NOT NULL kalit so’zi ustunga NULL qiymat kiritishni cheklaydi. Ya’ni ustun har doim biror qiymatga ega bo’lishini ta’minlaydi.

CREATE TABLE jadval_nomi (
     ustun1 malumot_turi NOT NULL,
     ustun2 malumot_turi NOT NULL,
     ustun3 malumot_turi NOT NULL,
     ....
  );
  
ALTER TABLE jadval_nomi ALTER COLUMN ustun_nomi malumot_turi NOT NULL;

UNIQUE cheklovi ustundagi qiymatlar takrorlanmasligini talab qiladi, ya’ni ustundagi barcha qiymatlar turlicha bo’ladi.

PRIMARY KEY cheklovi orqali jadvaldagi har bir qator identifikatsiya qilinadi va tabiiyki ushbu ustundagi qiymatlar har xil bo’ladi. Shuningdek, NULL bo’lmagan qiymatlar qabul qiladi.

Jadvalda faqat bittagina PRIMARY KEY bo’ladi va ushbu jadvalda, o’sha PRIMARY KEY bir yoki undan ortiq ustunlarni o’z ichiga olishi mumkin.

FOREIGN KEY jadvallar orasidagi bog’lanishlarni yo’qolishini oldini oladi. FOREIGN KEY bu biror jadvaldagi bir yoki bir nechta maydonlar to’plami bo’lib, boshqa bir jadvaldagi PRIMARY KEY ga bog’langan bo’ladi.

CHECK kalit so’zi yordamida ustunga joylash mumkin bo’lgan qiymatga cheklov qo’yish mumkin. Agar siz ustunga CHECK cheklovini bersangiz, u faqat berilgan shartni qanoatlantiradigan qiymatlarni qabul qiladi.

DEFAULT kalit so’zi ustunga standart qiymatni berish uchun ishlatiladi. Agar biror ustunga qiymat berilmasa, standart qiymat shu ustunga yuklanadi.

CREATE INDEX ifodasi jadvallarda indeks yaratish uchun ishlatiladi.

Indekslar ma’lumotlar bazasidan ma’lumotni odatdagidan tezroq olish uchun ishlatiladi. Foydalanuvchilar indekslarni ko’ra olmaydi, shunchaki ular qidiruv va so’rovlarni tezlashtirish uchun ishlatiladi.

Eslatma: Jadvalni indekslar yordamida o’zgartirish indekslarsiz o’zgartirishdan sekinroq ishlaydi, chunki indekslar ham o’zgartirilishi kerak. Shuning uchun faqat qidiruvni tezlashtirish uchun indekslar yarating.