|
Oʻzbеkistоn rеspublikаsi оliy vа oʻrtа mаxsus tа’lim vаzirligi islom karimov nоmidаgiBog'liq МББваДТ (1 курс)tayyorPRIMARY
KEY
) cheklanishi orqali ta‘riflaydi.
PRIMARY
KEY
jadvalni yoki
ustunlarni cheklashi mumkin. Bu cheklanish
UNIQUE
cheklanishi kabi
ishlaydi, jadval uchun faqat bitta birlamchi kalit (ixtiyoriy sondagi ustunlar
uchun) aniqlanishi mumkin boʻlgan holdan tashqari. Birlamchi kalitlar
34
NULL
qiymatga ega boʻlishi mumkin emas.
Misol:
CREATE TABLE Employee
(id integer NOT NULL PRIMARY KEY,
name varchar (45),
birthday date,
seriya varchar(45),
address varchar(255),
phone varchar(15),
staji int,
status tinyint(1),
is_delete tinyint(1)
)
PRIMARY KEY
cheklanishi qiymatlar unikal kombinatsiyasini tashkil
qiluvchi bir necha maydonlar uchun qoʻllanishi mumkin. Masalan
PRIMARY KEY
cheklanishini juftliklar uchun qoʻllash mumkin:
CREATE TABLE Employee
(id integer NOT NULL,
name varchar (45),
birthday date,
seriya varchar(45),
address varchar(255),
phone varchar(15),
staji int,
status tinyint(1),
is_delete tinyint(1),
PRIMARY KEY (id, seriya)
)
CHECK
cheklanishi
jadvalga
kiritilayotgan
ma‘lumot qabul
qilinishidan oldin mos kelishi lozim boʻlgan shart kiritishga imkon beradi.
CHECK
cheklanishi
CHECK
kalit soʻzi koʻrsatilgan maydondan
foydalanuvchi predikat ifodalaridan iboratdir.
Misol:
Employee
jadvali
status
ustuniga kiritilayotgan qiymat 1 dan
katta yoki teng boʻlish sharti.
CREATE TABLE Employee
(id integer NOT NULL PRIMARY KEY,
name varchar (45),
birthday date,
seriya varchar(45),
35
address varchar(255),
phone varchar(15),
staji int,
status tinyint(1) CHECK(status>=1),
is_delete tinyint(1)
)
CHECK
cheklanishidan maydonga ma‘lum qiymatlarini kiritishdan
himoya qilib, xatolar oldini olish uchun foydalanish mumkin. Masalan
xodimlar adresi faqat Toshkent, Buxoro, Samarqand va Guliston shaharlar
boʻlsin.
CREATE TABLE Employee
(id integer NOT NULL PRIMARY KEY,
name varchar (45),
birthday date,
seriya varchar(45),
address varchar(255) CHECK (address
in("Toshkent","Buxoro","Samarqand","Guliston"),
phone varchar(15),
staji int,
status tinyint(1) CHECK(status>=1),
is_delete tinyint(1)
)
CHECK
jadval cheklanishi sifatida kelishi mumkin. Bu shartga bir
necha maydon kiritishga imkon beradi.
Masalan:
CREATE TABLE Employee
(id integer NOT NULL PRIMARY KEY,
name varchar (45),
birthday date,
seriya varchar(45),
address varchar(255),
phone varchar(15),
staji int,
status tinyint(1),
is_delete tinyint(1),
CHECK (staji >=1 or address
in("Toshkent","Buxoro","Samarqand","Guliston")
)
36
Biror bir maydon uchun qiymat koʻrsatmagan holda jadvalga satr
qoʻshsangiz, SQL bunday maydonga kiritish uchun koʻzda tutilgan
qiymatga ega boʻlishi kerak, aks holda komanda rad etiladi. Eng umumiy
koʻzda tutilgan qiymat
NULL
qiymatdir.
CREATE TABLE
komandasida
koʻzda tutilgan qiymat
DEFAULT
operatori orqali, ustun cheklanishi
sifatida koʻrsatiladi.
Masalan:
CREATE TABLE Employee
(id integer NOT NULL PRIMARY KEY,
name varchar (45),
birthday date,
seriya varchar(45),
address varchar(255),
phone varchar(15),
staji int,
status tinyint(1) ) DEFAULT "NULL",
is_delete tinyint(1),
CHECK (staji >=1 or address
in("Toshkent","Buxoro","Samarqand","Guliston")
)
Jadval bir maydonidagi hamma qiymatlar boshqa jadval maydonida aks
etsa, birinchi maydon ikkinchisiga ilova qiladi deyiladi. Bu ikki maydon
orasidagi bogʻliqlikni koʻrsatadi. Masalan, buyurtmachilar jadvalida har
bir buyurtmachi, sotuvchilar jadvalida oʻziga biriktirilgan sotuvchiga ilova
qiluvchi
SNum
maydoniga ega. Bir maydon ikkinchisiga ilova qilsa tashqi
kalit, u ilova qilayotgan maydon ajdod kalit deyiladi. Buyurtmachilar
jadvalidagi SNum maydoni tashqi kalit, sotuvchilar jadvalidagi
SNum
-
ajdod kalitdir.
Tashqi kalit bitta maydondan iborat boʻlishi shart emas. Birlamchi kalit
kabi, tashqi kalit bitta modul sifatida qayta ishlanuvchi bir necha
maydonlarga ega boʻlishi mumkin. Maydon tashqi kalit boʻlsa, ilova
qilayotgan jadval bilan ma‘lum usulda bogʻliqdir. Tashqi kalit har bir
qiymati (satri) ajdod kalitning bitta va faqat bitta qiymatiga (satriga) ilova
qilishi kerak. Bu holda tizim ilovali yaxlit holatda deyiladi.
Shu bilan birga ajdod kalit qiymati tashqi kalit bir necha qiymatlariga
ilova qilishi mumkin.
Cheklanish
|
| |