12.3. Tasavvurlarni yaratish
SQL ning DDL (Data Definition Language) ma`lumotlarni aniqlash tili MB ning sxema, domenlar, jadvallar, tasvirlar va indekslar kabi ob`ektlarini yaratish va o`chirish uchun ishlatiladi.
Quyida SQL da ma`lumotlarni aniqlash tilining asosiy operatorlari nomi keltirilgan.
CREATE SCHEMA DROP SCHEMA
CREATE DOMAIN ALTER DOMAIN DROP DOMAIN
CREATE TABLE ALTER TABLE DROP TABLE
CREATE VIEW DROP VIEW
CREATE SYNONYM DROP SYNONYM
Bu erda:
CREATE – yaratish;
ALTER – mavjud ob`ektni modifikatsiyalash;
DROP – mavjud ob`ektni o`chirish.
SCHEMA - sxema.
DOMAIN – domen.
TABLE – jadval.
VIEW – tasvir yoki ko`rinish.
SYNONYM – jadval nomi uchun sinonim.
Bu operatorlar kontseptual sxemaning tarkibiga kiruvchi tuzilmalarni yaratish,
tahrirlash va o`chirish uchun ishlatiladi. Ba`zi MBBT larda quyidagi operatorlar ham mavjud:
CREATE INDEX DROP INDEX
INDEX - ustun uchun indeks.
Tasvirlarni yaratish. Jadval va jadvallardagi ma`lumotlarni olish uchun tasvirlardan foydalaniladi. Tasvir – bu bo`sh, virtual jadvaldir. So`rov vaqtida uning ustunlari tasvirda ko`rsatilgan jadvaldan to`ldiriladi. Tasvirlarni ishlatishdan maqsad jadvallarni yoki jadvallarning ba`zi bir ustunlarini foydalanuvchilardan yashirishdir. Bundan tashqari, tasvir orqali bir necha jadvallarda berilgan ma`lumotlarni yagona jadval shaklida foydalanuvchiga taqdim qilishdir. MB jadvallari o`zgartirilsa, bu o`zgarishlar amaliy dasturlarga ta`sir qilmasligini ta`minlash, tasvirlarni ishlatish orqali amalga oshiriladi. Shuning uchun, amaliy dasturlar orqali xech qachon to`g`ridan to`g`ri jadvalga emas, balki uning tasviriga bog`lanishni amalga oshirish maqsadga muvofiq hisoblanadi.
Tasvirlar CREATE VIEW operatori bilan e`lon qilinadi va uning sintaksisi quyidagicha:
CREATE VIEW tasvir_nomi
[(ustun[,ustun] ...)]
AS so`rov osti
[WITH CHECK OPTION];
Masalan, Talaba jadvalidan 1 va 3 tartib raqami bilan berilgan talabalar ro`yxatini alohida Talaba1 nomli virtual jadval shaklida foydalanuvchiga taqdim qilish mumkin:
CREATE VIEW Talaba1 AS SELECT id, stfam, stname
FROM Talaba WHERE guruh=’1’ AND guruh=’3’;
Masalan, 11.1.1. Misoldagi student, mark_st va exam_st jadvallaridan talabalarning fanlardan olgan baholarini yagona ‘Talaba_fan’ nomli jadval shaklida foydalanuvchiga taqdim qilish mumkin:
CREATE VIEW Talaba_fan
SELECT E.stfam, Estname, M.id_ex, M.mark FROM student E, mark_st M
WHERE E.id_st = M.id_st
Keraksiz tasvirlarni o`chirish:
DROP VIEW tasvir_nomi;
Jadvalni o`chirish. Jadvalni o`chirish uchun DROP TABLE buyrug`i ishlatiladi. Bo`sh bo`lmagan jadvallarni o`chirishga ruxsat berilmaydi. Shuning uchun, jadvalni o`chirishdan oldin uning qiymatlarini o`chirish talab qilinadi. Uning sintaksisi:
DROP TABLE < table name >;
Masalan: DROP TABLE Salepeople;
Jadvalni o`zgartirish. Jadvalni o`zgartirish uchun ALTER TABLE buyrug`i ishlatiladi. Bu buyruq orqali jadvalga yangi ustunlar qo`shish va mavjud ustunlarni olib tashlash, ustunlar kattaliklarini o`zgartirish, cheklashlarni qo`yish va mavjud cheklashlarni olib tashlash mumkin. Uning sintaksisi:
ALTER TABLE ADD
;
Masalan:
ALTER TABLE Salepeople ADD Phone CHAR(7);
SQL tilida protsedura va triggerlar. Ba`zi bir MBBT larida protseduralar yaratishga imkon beruvchi SQL tili ishlatiladi. Bu protseduralar ham xuddi dasturlash tillaridagi protseduralar singari vazifani bajaradi. Protsedura matni avvaldan yaratiladi, kompilyatsiya qilinadi va saqlanadi. Keyin esa kerakli vaqtda chaqirilib, ishlatiladi. Protseduralar to`plami paket shaklida jamlanib saqlanadi.
Trigger ham xuddi protsedura singari yaratiladi, kompilyatsiya qilinadi va saqlanadi. Ammo, u kerakli paytda chaqirilmaydi, balki kerakli vaziyatda avtomatik ravishda o`zi ishlaydi.
Bundan tashqari funktsiyalar ham ishlatiladi. Masalan Oracle MBBT PL/Sql tilida funktsiya matni:
AUK jadvaldagi eng katta tartib raqamini o`qib olish. Jadval ma`lumotlari doimo funktsiya yordamida to`ldirilganligi uchun ushbu funktsiya yordamida tartib raqam beriladi.
FUNCTION Fuk _max RETURN number IS
unr number(10);
BEGIN
unr:=0;
select Max(Id) into Unr from AUK;
return unr;
EXCEPTION
WHEN NO_DATA_FOUND THEN
unr:=0;
RETURN unr;
WHEN OTHERS THEN
unr:=0;
RETURN unr;
END;
Do'stlaringiz bilan baham: |