CREATE DOMAIN Jjnsi CHAR(3)
CHECK VALUE IN (‘erkak’, ‘ayol’)
CREATE DOMAIN Dtug_yil INT
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),
Sanoq son ko`rinishiDECIMAL (6,2),
tug_joy 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
>::=
Do'stlaringiz bilan baham: |