|
Ma’lumot bazasi modellari
|
bet | 9/20 | Sana | 27.05.2024 | Hajmi | 1,82 Mb. | | #254618 |
Bog'liq 4-maruzaDROP TABLE R;
E`tibor beradigan bo`lsak, jadvalni yaratishda jadval nomi, jadvalni tashkil etuvchi ustunlar ta`riflangan va cheklashlar o`rnatilgan edi. O`chirishda esa MBda mavjud jadvalning nomi ko`rsatilishi kifoya. Tafsiya o`rnida: MB ishlayotgan xodim bu buyuruqdan extiyotkorlik bilan foydalanishi lozim. Chunki bunda o`chirilgan ma`lumotlarni qayta tiklash muammolari kelib chiqadi.
Ma`lumot o`rnida. SQL buyruqlarining sinaksisida ko`p uchraydigan belgilashlar: [ ] – kvadrat qavs ichidagi ifodani zarrur bo`lgan hollarda ishlatiladi, | – tik chiziq ushbu buyruqda faqat yoki o`ng, yoki chap tomonidagi ifoda(kalit so`z)dan foydalanishni bildiradi.
CREATE TABLE buyrug`ining kengaytirilgan ko`rinishi quyidagicha:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options] [select_statement]
Bu yerda tbl_name – yaratilayotgan jadval nomi va u majburiy,
TEMPORARY kalit so`zi yaratilayotgan jadvalning vaqtinchalik bo`lib, ushbu jadval SQLning keyingi seansigacha saqlanib qolinadi.
IF NOT EXISTS – kalit so`zi, yangi jadval ushbu MBda xuddi shu nomli jadval bo`lmasagina yaratilishi lozimligini bildiradi.
create_definition qismida jadval maydonlari ta`riflanadi, ya`ni:
maydon type [NOT NULL | NULL]
[DEFAULT default_value] [AUTO_INCREMENT]
[CHECK] [PRIMARY KEY] [FOREIGN KEY] [KEY] [UNIQUE] [INDEX]
maydon – jadvalda ta`riflanayotgan maydon nomi;
type – maydon nomli ustun ma`lumot turi (misol uchun MySQL uchun: Int[(length)], Real[(length,decimals)], Numeric(length,decimals), Char(length), Varchar(length), Date, Time, Longblob, Text, longtext, SET(value1,value2,value3,...))
NOT NULL | NULL – maydon qiymati bo`sh yoki bo`sh qiymatga ega bo`lishi;
DEFAULT default_value – maydon uchun dastlabki qiymat o`rnatiladi. Bu yerda DEFAULT kalit so`zdan keyin default_value o`rniga qiymat yoziladi. Agar qiymat matnli ko`rishda bo`lsa, qo`shtirnoq ichida yoziladi.
CHECK (expr) – maydon qiymatlariga chegara qo`yishda ishlatiladi. Misol uchun sonli maydon 100dan kichik qiymat olsa, CHECK (maydon<100).
Ta`riflanayotgan maydonga zaruriyat bo`lsa quyidagilardan faqat bitta orqali kalit maydon qilinadi:
AUTO_INCREMENT – faqat int tipidagi maydonga avtohisoblagich o`rnatish. Bu qaytarilmas raqam ob`ektni identifikatsiya qiliadi;
PRIMARY KEY (index_col_name,...) – ko`rsatilgan maydonini birlamchi (asosiy) kalit maydon qiladi;
KEY [index_name] (index_col_name,...) – ko`rsatilgan maydonni alohida ko`rsatilgan nomga ega kalit maydon qilish;
INDEX [index_name] (index_col_nam,...) –maydonni index maydon qilish;
UNIQUE [INDEX] [ind_name] (ind_col_name,...) – maydonni unikal qilish. Ba`zi xollarda biror maydonga kiritilayotgan barcha qiymatlar bir biridan farq qilishi kerak. Bunda shu maydon uchun UNIQUE (yagona) so`z ishlatiladi;
FOREIGN KEY – ikkilamchi kalit yaratish. To`liq yozilishi quyidagicha:
[CONSTRAINT symbol]
FOREIGN KEY (maydon)
REFERENCES table2 [(name2)]
Bu yerda yaratilayotgan maydon nomli ustun ma`lumot tipi sonli va uning qabul qiladigan qiymatlari boshqa table2 jadvaldan name2 nomli va u PRIMARY KEY turidagi maydon domenidan qiymatlar qabul qiladi;
table_options qismida yaratilayotgan jadvalning MB bo`yicha xususiyatlari ko`rsatiladi, jumladan:
TYPE = { InnoDB | MERGE | MYISAM | … } – jadvalning yozuv formati
AUTO_INCREMENT = # – avtohisoblagich davom qiladigan raqam;
COMMENT = "string" – jadval uchun izoh ko`rsatilishi;
MAX_ROWS = #, MIN_ROWS = # - eng katta va eng kichi yozuvlari soni.
select_statement qismi create_definition bo`lmagan holda ishlatiladi:
[IGNORE | REPLACE] SELECT ... (har qanday to`g`ri SELECT natijasi)
To`g`ri tuzilgan SELECT so`rovi natijasidagi yozuvlaridagi maydon nomlari bo`yicha jadval yaratiladi va avtomat aniqlangan ma`lumt turlari jadvalning mos maydon turlari qilib belgilanadi.
|
| |