CHECK VALUE BETWEEN 1960 AND 1989
CREATE TABLE talaba (id_talaba INTEGER PRIMARY KEY,
zach_nom CHAR(8) NOT NULL UNIQUE,
familiya VARCHAR(40) NOT NULL,
ismi VARCHAR(40) NOT NULL,
sharifi VARCHAR(40),
id_millati INTEGER,
jinsi Jjnsi,
pas_ser CHAR(2) NOT NULL,
pas_nom CHAR(8) NOT NULL,
tug_yil Tug_yil,
manzil VARCHAR(255),
ogirligi DECIMAL (6,2),
tug_goy VARCHAR(50) DEFAULT ‘Toshkent’,
id_tum INTEGER,
id_ray INTEGER,
id_fak INTEGER,
stipendiya INTEGER,
UNIQUE (pas_ser,pas_nom),
CONSTRAINT Millat
FOREIGN KEY (id_millati)
REFERENCES millatlar
ON DELETE SET NULL,
CONSTRAINT Oblast
FOREIGN KEY (id_obl)
REFERENCES viloyat
ON DELETE SET NULL,
CONSTRAINT Rayon
FOREIGN KEY (id_ray)
REFERENCES tumanlar
ON DELETE SET NULL,
CONSTRAINT Fakul
FOREIGN KEY (id_fak)
REFERENCES fakultet
ON DELETE CASCADE
ON UPDATE CASCADE)
Jadval tavsifini o’zgartirish
Jadval yaratilgandan keyin uni tuzilishini o’zgartirish uchun ALTER
TABLE operatori qo’llanadi, bu operator yordamida quyidagi ishlovlarni
amalga oshirish mumkin:
jadvalga yangi ustun kiritish;
jadvaldan ustunni o’chirish;
jadval uchun yangi chegaralanishlar kiritish;
jadval chegaralanishlarni o’chirish;
ustun uchun kelishuv qiymatlarini o’rnatish;
kelishuv qiymatlarni o’chirish.
Bu operatorning formati quyidagicha:
<jadval o’zgartirish>::= ALTER TABLE <jadval nomi>
{ADD [ COLUMN ] {<ustun nomi>
{<domen nomi> | <berilgan turi>}
[ NOT NULL | NULL ] [ UNIQUE ]
[<kelishuv bo’yicha qiymat>] [<check
chegarasi>]} [, . . . ]
| DROP [ COLUMN ] {<ustun nomi>
[ RESTRICT | CASCADE ] } [, . . . ]
| {ADD <chegara tavsifi>} [, . . . ]
| DROP CONSTRAINT {<chegara nomi>
[ RESTRICT | CASCADE ] } [, . . . ]
| ALTER [ COLUMN ] { <ustun nomi>
{ SET DEFAULT <kelishuv qiymati>
| DROP DEFAULT } } [, . . . ]
Misol:
talaba jadvaldan zach_nom ustunni o’chirish kerak, yangi ustun
qo’shilsin kir_yil nomli.
ALTER TABLE talaba
ADD COLUMN kir_yil INT NOT NULL DEFAULT
2011 CHECK kir_yil>2010;
ALTER TABLE talaba
DROP COLUMN zach_nom RESTRICT;
Jadvalni olib tashlash
Jadvalni olib tashlash uchun quyidagi operator ishlatiladi:
adval olib tashlash operatori>::=DROP TABLE <jadval nomi>
[ RESTRICT | CASCADE ]
Jadvalni olib tashlashda, barcha satrlar ham yo’qotiladi. Agar
RESTRICT kalit so’zi ko’rsatilgan bo’lsa, boshqa obyektlarda jadvalga
murojaat bo’lsa (masalan tasavvurlarda), u holda jadval olib tashlanmaydi,
CASCADE kalit so’zi berilganda esa, barcha havola qilgan obyektlar ham
o’chiriladi va h.k. Shu sababli, CASCADE kalit so’zni ehtiyotlik bilan
ishlatmoq kerak.
Misol:
DROP TABLE talaba RESTRICT
Indeks yaratish
Indekslar jadval satrlarini tezkor qidirish uchun ishlatidi. Agar jadvalda
indekslar mavjud bo’lsa har yangi satr qo’shilganda jadval indeks bo’yicha
qayta tartiblanadi shu sababli yangi satr kiritish vaqti cho’ziladi, lekin
jadvalda qiymat qidirish ancha tezlashadi. SQL tilini namunasida bunday
operator yo’q, lekin barcha dialektlarda bunday operator bor. Indeks
jadvalini yaratish uchun CREAT INDEX operatorni qo’llash kerak:
<indeks yaratish operatori>::= CREATE [UNIQUE] INDEX
<indeks nomi> ON <jadval nomi>
({<ustun nomi> [ASC | DESC] } [,…])
Misol: Birlamchi kalit bo’yicha indeks yaratilsin:
Do'stlaringiz bilan baham: |