15-mavzu. SQLda Alter instruksiyasi. Jadvalga maydonlarni
qo’shish. Maydonlarning turini o’zgartirish. Kalitni
qo’shish.Atributlarni ma’lumotni yo’qotmay o’zgartirish.
Jadvaldan ustunlarni o’chirish.
Reja:
1)
Jadvalga maydonlarni qo’shish.
2)
Maydonlarning turini o’zgartirish.
3)
Kalit qo’shish.
4)
Atributlarni ma’lumotlarni yo’qotmay o’zgartirish.
5)
Jadval ustunlarini o’chirish.
Ma’lumotlarni aniqlash tili
SELECT, INSERT, DELETE, UPDATE va boshqa qaralgan yo’riqnomalar
ma’lumotlarni qayta ishlash uchundir. Bu yo’riqnomalarning to’plami ma’lumotlarni qayta
ishlash tili yoki DML (Data Manipulation Language) deb yuritiladi. DML yo’riqnomalari MB
saqlanadigan axborotlarni o’zgartirish (modifikatsiyalash)
uchundir, lekin bular strukturani
o’zgartira olmaydi. Masalan: oldin qaralgan hach bir yo’riqnomalar jadvalni yoki ustunni tuzish
yoki o’chirish imkoniyatini bermaydi.
MB strukturasini o’zgartirish uchun SQL ning boshqa yo’riqnomalar to’plami mavjud va
ular ma’lumotlarni aniqlash tili yoki DDL (Data Definition Language) deb yuritiladi. DDL
yo’riqnomalari yordamida quyidagi ishlarni bajarsa bo’ladi:
Yangi jadval strukturasini
aniqlash va uni tuzish;
Kerak bo’lmaydigan jadvallarni o’chirish;
Mavjud jadvallar aniqlanishini o’zgartirish;
MB xavfsizligini na’minlash;
Jadvallardagi ma’lumotlarni tezroq olish uchun indekslar hosil qilish;
Ma’lumotlarning fizik joylashuvini boshqaris.
Ma’lumotlani aniqlash tilining yadrosini quyidagi uch buyruq tashkil etadi:
CREATE (tuzish) – MB ob’ektini aniqlash va tuzish imkoniyatini beradi;
DROP (o’chirish) - MB ning mavjud ob’ektlarni olib tashlash (o’chirishni)
imkonini
beradi;
ALTER (o’zgartirish) – bu orqali MB ob’ektining aniqlanishi o’zgartirish mumkin.
Jadval tuzish
MB sida axborotlarni saqlash uchun, oldin uning strukturasini aniqlash lozim. Aytaylik
Talaba o’quv bazasiga qo’shimcha ma’lumotlar kiritish zarur bo’lsin. Masalan, Kitoblar haqida:
Har bir kitob uchun quyidagi ma’lumotlar saqlash zarur bo’lsin:
Kitob ishlab chiqaruvchini aniqlovchi kodi – uchta
simvoldan iborat;
Kitobni aniqlovchi kod – besh simvol;
Tavsiflash – o’ttiz simvolgacha;
Kitob narxi;
Kitob soni.
CREATE TABLE yo’riqnomasi yangi jadvalni aniqlaydi. Demak kitob haqidagi ma’lumotlarni
saqlash uchun struktura hosil qilishga SQL buyrug’ini bajartirish lozim:
CREATE TABLE
Kitob (Kod_ICh CHAR(3),
Kod_Kitob CHAR(5),
Tavsiflash VARCHAR(30),
Narxi NUMERIC(9,2),
Soni INTEGER);
MB ga jadvallar CREATE TABLE xizmatchi so’zi yordamida qo’shiladi. Bu buyruq
bo’sh
jadval hosil qiladi, ya’ni u hosil qilgan jadvalda birorta ham satr bo’lmaydi. Jadvalga
qiymatlar INSERT buyrug’i yordamida kiritiladi. CREATE TABLE buyrug’I jadval nomi va
ko’rsatilgan tartibda ustunlarni aniqlaydi. Har bor ustun qabul qiladigan
qiymatning tipi va
o’lchami ko’rsatilishi lozim. Har bir tuziladigan jadval eng kamida bitta ustunga eha bo’lishi
lozim. CREATE TABLE buyrug’ining qisqartirilgan ko’rinishi quyidagicha:
CREATE TABLE
( [()], …);
Quyidagi so’rov Talaba1 nomili jadvalni hosil qiladi:
CREATE TABLE Talaba1
(KodTalaba INTEGER,
Familiyasi CHAR(20),
Ismi CHAR(15),
Stipendiya DOUBLE,
Kurs INTEGER,
Shahar VANCHAR,
SanaT DATE);
CREATE TABLE buyrug’ining umumiy ko’rinishi:
Ustunni aniqlash:
Jadval cheklovlarini aniqlash:
CONSTRAINT – cheklovlar qo’yish imkoniyatini beradi. Ba’zi MBBT larida bu xizmatchi so’z
o’rniga CASCADE yoki RESTRICT xizmatchi so’zlari ham qo’llanilishi ham mumkin.
Umuman olganda MBBT lari tipiga qarab qo’llaniladi.
DEFERRABLE – tekshirivni kechiktirish, tranzaktsiya oxirigacha qoldirilishi mumkin. Masalan,
yangi kitob haqida ma’lumotlarni barchasini kiritguncha kutushi lozim.
NOT DEFERRABLE – birdan tekshirish, kechiktirmasdan. Masalan: ustun qiymatlariga
qo’yiladigan cheklovlae: noyobligi, birlamchi kalitligi va boshqalar.
DOMEN xizmatchi so’zidan foydalanib qiymatlarga qo’shimcha cheklovlar
kiritish mumkin,
ya’ni bu berilgan cheklov ustunning har-bir qiymatini mos kelish-kelmasligiga tekshiradi.
Masalan:
CREATE DOMAIN Cheklov_Ta_Kod INTEGER
CHEK (VALUE BETWEEN 11 AND 99);
U holda Talaba jadvali va uning ustunlarini aniqlash uchun:
CREATE
TABLE Talaba
(Ta Cheklov_Ta_Kod
NOT NULL,
Shahar VARCHAR(15)
NOT NULL,
GURUH VARCHAR(10)
NOT NULL,
KUSR INTEGER,
Oraliq DECIMAL(9,2),
Ball DECIMAL(9,2) NOT NULL);
SQL standarti ko’pgina relyatsion MBBT kabi sukunat holatda qiymat berish
imkoniyatlari ham mavjud. Masalan, yuqorida qaralgan masalani o’zgartiramiz:
CREATE TABLE Talaba
(Ta INTEGER
NOT NULL,
Shahar VARCHAR(15)
NOT NULL,
GURUH VARCHAR(10)
NOT NULL DEFAULT ’018-335’,
KUSR INTEGER
DEFAULT 4,
Oraliq DECIMAL(9,2)
DEFAULT NULL,
Ball DECIMAL(9,2) NOT NULL DEFAULT 0.00);
Jadvalni o’chirish
Vaqt o’tishi bilan MB strukturasi o’zgaradi. Yangi ob’ektlarni tasvirlash uchun yangi
jadvalar tuziladi, ba’zi bir eski jadvallar o’z kuchini yo’qotadi, ya’ni kerak bo’lmay qoladi. Bu
kerak bo’lmay qolgan jadvallarni DROP TABLE yo’riqnomasi yordamida o’chirish mumkin.
Uning umumiy ko’rinishi:
CREATE TABLE ThisTable (FirstName CHAR, LastName CHAR);
CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm VARCHAR(50))
CREATE TABLE MyTable (FirstName CHAR, LastName CHAR, DateOfBirth DATETIME,
CONSTRAINT MyTableConstraint UNIQUE (FirstName, LastName, DateOfBirth));