|
CREATE TABLE IF NOT EXISTS
|
bet | 10/20 | Sana | 27.05.2024 | Hajmi | 1,82 Mb. | | #254618 |
Bog'liq 4-maruzaCREATE TABLE IF NOT EXISTS newbook_mast(
book_id varchar(15) NOT NULL AUTO_INCREMENT PRIMARY KEY,
book_name varchar(50),
isbn_no varchar(15) NOT NULL UNIQUE,
cate_id varchar(8),
aut_id varchar(8),
pub_id varchar(8),
dt_of_pub date,
pub_lang varchar(15) DEFAULT “O`zbek adabiyoti”
no_page decimal(5,0) CHECK(no_page>0),
book_price decimal(8,2),
FOREIGN KEY (aut_id) REFERENCES newauthor(aut_id));
Bu jadvalda book_id maydoniga avtohisoblagich o`rnatilgan birlamchi kalit maydon, pub_lang maydoniga dastlabki qiymat va no_page maydoniga cheklov o`rnatilgan. FOREIGN KEY orqali aut_id maydoni newauthor jadvalining aut_id maydoni orqali ikkilamchi kalit qilingan.
Jadvaldagi ma`lumotlarni maydonlar bo`yicha qidirish-tanlash amalini yetarli darajada tezlatish uchun ma`lumotlarni berilgan maydon bo`yicha indeksatsiya qilish ishlatiladi. Indekslarni bitta yoki bir nechta maydon bo`yicha bajarish mumkin. Indeks buyuruqining sintaksisi quyidagicha:
CREATE INDEX ON
([,]);
Bu komanda bajarilishi uchun jadval yaratilgan va indeksda ko`rsatilgan ustunlar unda bo`lishi kerak. Masalan, xodimlar jadvalidan talabani fio maydoni qiymati bo`yicha maoshini qidirish tez-tez talab etilsa, unda shu maydon bo`icha indekslash bajariladi
CREATE INDEX fio_index ON xodimlar (fio);
Indeksni olib tashlash uchun (bunda uni nomini albatta bilish kerak) kuyidagi komanda ishlatiladi.
DROP INDEX ;
Masalan,
DROP INDEX ;
Yaratilib bo`lingan va ko`p hollarda unga ma`lumot kiritilgan jadvallarning tuzilmasini, ya`ni maydonlar bo`yicha tahrirlash ishlarini olib borishga to`g`ri keladi. Bunday amallarni DDL guruhning ALTER TABLE operatori bajaradi. Sodda ko`rinishda qaraladigan bo`lsa, mavjud jadvalga maydon qo`shish (Add) va olib tashlashda (Drop) quyidagi buyruqlardan foydalaniladi. alter table buyrug`ining umumiy ko`rinishi quyidagicha:
ALTER TABLE r ADD A T;
ALTER TABLE r DROP D;
Bu yerda r - mavjud jadval nomi, A - yangi qo`shilgan maydon nomi, T - maydonning tipi, D – o`chiriladigan maydon nomi. Bunda jadvalga yangi kiritilgan maydonning barcha maydonlari null qiymati bilan to`ldirib chiqiladi. Umumiy holda ALTER TABLE operatori sintaksisi quyidagicha:
ALTER [IGNORE] TABLE jadval_nomi [, ko`rsatma ...]
Quyida ushbu operator ko`rsatmalar va ular parametrlari keltiriladi:
ADD – ko`rsatilgan jadvalga yangidan maydon (ma`lumot tipi bilan) va kalitlar qo`shish imkonini beradi. Bu buyuruq bo`yicha mavjud jadval satrlariga yangi ustun qo`shiladi va unga NULL qiymati yoziladi. Jadvalga bir nechta ustun ham ko`shsa, ular bir biridan vergul bilan ajratiladi.
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
ADD [COLUMN] (create_definition, create_definition,...)
ADD INDEX [index_name] (index_col_name,...)
ADD PRIMARY KEY (index_col_name,...)
ADD UNIQUE [index_name] (index_col_name,...)
ADD FULLTEXT [index_name] (index_col_name,...)
ADD [CONSTRAINT symb] FOREIGN KEY index_name (ind_col_name,...) [reference_def]
Alter, Change, Modify – ko`rsatilgan maydonni taxrirlaydi. Ustun tasniflarini modifikatsiyalashda ushbu cheklanishlarni hisobga olish kerak:
Not Null o`rnatilishi uchun ustunda birorta ham Null qiymat bulmasligi;
Ma`lumot toifasini o`zgartirishni, faqat ustun bo`sh bo`lsa bajarish;
To`ldirilmagan ustun uchun o`lcham/aniqlik uzunliklarini o`zgartirish;
To`ldirilgan ustun uchun o`lcham/aniqlik faqat kattalashtirish;
Sukut bilan o`rnatilgan qiymatni har doim uzunligini o`zgartirish mumkin
ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
CHANGE [COLUMN] old_col_name create_def [FIRST | AFTER col_name]
MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
DROP – ko`rsatilgan maydon va kalitlarni o`chiradi.
DROP [COLUMN] col_name
DROP PRIMARY KEY
DROP INDEX index_name
RENAME [TO] new_tbl_name – nomini o`zgartiradi.
ORDER BY col – jadvaldagi ustunlar tartibini belgilaydi.
table_options –jadval xususiyatlarini o`zgartiradi.
Eslatma. Alter table operatorida faqat bitta ko`rsatma bajariladi va/yoki ko`rsatmalar vergul orqali ajratiladi. Misollar.
|
| |