Misol 10. Cheklovlar bilan mijoz jadvalini yaratish.
Jadval yaratish Client
(ClientID INT IDENTITY (1,1) ASOSIY KALT,
Firma VARCHAR (50) NULL EMAS,
Familiyasi VARCHAR (50) NULL EMAS,
Shahar VARCHAR (50) NULL EMAS,
Telefon CHAR (10) NO NULL
CHECK (Telefon LIKE '[1-9] [0-9] - [0-9] [0-9] - [0-9] [0-9]'));
sql kodini ishga tushiring . Ma'lumotlar bazasini yangilang va yaratilgan jadvalni ko'ring. Nomi ostida SQL so'rov saqlash Example10.sql yilda Student_name / Lab4 papkaga .
4.6.5. FOREIGN KEY cheklovi
Chet el kalit cheklovi - relyatsion ma'lumotlar bazasidagi jadvallar o'rtasida havolalar yaxlitligini saqlashning asosiy mexanizmi.
FOREIGN KEY parametrida tashqi kalit sifatida ko'rsatilgan bolalar jadvalining ustuni ota-jadvalning asosiy kalit ustuniga murojaat qilish uchun ishlatiladi .
Ota-jadval nomi va uning asosiy kalit ustunlari REFERANSLAR bandida ko'rsatilgan .
Xorijiy kalit sifatida belgilangan ustunlardagi ma'lumotlar faqat asosiy jadvalning asosiy kalit ustunlari bilan bir xil qiymatlarni olishi mumkin.
Bola va ota-ona jadvallari o'rtasidagi munosabatlar uchun ustun nomlarini moslashtirish shart emas.
Birlamchi kalit bir xil nomdagi ustun uchun belgilanishi mumkin, FOREIGN KEY chekloviga ega bo'lgan ustun esa butunlay boshqacha nomga ega bo'lishi mumkin. Yagona talab - ustunlar ma'lumotlar turi va hajmiga mos kelishidir.
Birlamchi kalitga faqat boshqa jadvallar ustunlari orqali emas, balki haqiqiy asosiy kalit bilan bir xil jadvalda joylashgan ustunlar orqali ham murojaat qilish mumkin; bu rekursiv tuzilmalarni yaratish imkonini beradi.
Chet el kaliti boshqa jadvalning asosiy kalitiga emas, balki ko'proq bog'lanishi mumkin. Bu uchun belgilangan mumkin UNIQUE ning majburiy ustunlar ikkinchi jadval yoki har qanday boshqa ustunlar, lekin jadvallar shu bazasida bo'lishi kerak.
Chet el kalit ustunlari NULL qiymatlarni o'z ichiga olishi mumkin , lekin FOREIGN KEY cheklash tekshiruvi e'tiborga olinmaydi. Chet el kaliti indekslanishi mumkin, keyin server kerakli ma'lumotlarni tezroq topadi. Tashqi kalit jadvallarni yaratishda ham, o'zgartirishda ham aniqlanadi.
Yo'naltiruvchi yaxlitlik cheklovi bola jadvalidagi har bir yozuv uchun ota-jadvalda yozuv bo'lishi kerakligi haqidagi talabni belgilaydi. Bunday holda, ota-jadval yozuvidagi bog'lanish ustunining qiymatini bola yozuvi mavjud bo'lganda o'zgartirish bloklanadi, shuningdek, ON tomonidan kafolatlangan asosiy yozuvni o'chirish (kaskad o'zgartirish va o'chirishni taqiqlash) bloklanadi. DELETE NO ACTION va ON UPDATE NO ACTION parametrlari sukut bo'yicha qabul qilinadi. Kaskadni yoqish uchun ON DELETE CASCADE va ON UPDATE CASCADE parametrlaridan foydalanish kerak .
Agar foydalanuvchi asosiy jadvaldagi bir yoki bir nechta satrlarga havola qilingan satrni asosiy jadvaldan o'chirishga harakat qilsa, SQL quyidagi variantlarni taqdim etadi:
Dostları ilə paylaş: |