6-mavzu. Ma’lumotlar bazasi jadvallarini modifikatsiyalash. Ma’lumotlar bazasi jadvallarini modifikattsiyalash. Jadvallarni o’zgartirish. Mavjud jadvallarga xizmat ko’rsatish. Jadvallar ma’lumotlarini tahrirlash va o’zgartirish vositalari. Jadvallarni to’ldirish. SQL tili relyatsion ma’lumotlar bazasini boshqarish operatorlari quyidagi 3 ta qismga ajratiladi: • DDL (Data Definition Language) – ma’lumotlarni aniqlash tili. Ma’lumotlar bazasini (jadvallarini, indekslarini va x.k.) yaratish va uning sxemasini taxrirlash uchun mo’ljallangan.. • DCL (Data Control Language) – ma’lumotlarni boshqarish tili. Foydalanuvchilarning ma’lumotlar bazasi ob’ektlariga murojatini chegaralash operatorlaridan iborat. • DML (Data Manipulation Language) – ma’lumotlarni qayta ishlash tili. Ma’lumotlar bazasi jadvallariga o’zgartirishlar kiritish uchun mo’ljallangan. DDL operatorlari: Operator Ma’nosi Amal CREATE TABLE Jadval yaratish MB da yangi jadval yaratish DROP TABLE Jadvalni o’chirish MB dan jadvalni o’chirish ALTER TABLE Jadvalni o’zgartirish Mavjud jadval strukturasini o’zgartirish yoki joriy jadval uchun o’rnatilgan butunlik cheklanishlarini o’zgartirish CREATE VIEW Tassavir yaratish Biror SQL –so’rovga mos virtual jadvalni yaratish DML operatorlari: Ma’nosi Operator DELETE INSERT UPDATE Amal Satrni o’chirish Udalyaet odnu ili neskolko strok, sootvetstvuyushix usloviyam filtratsii, iz bazovoy tablitsı. Primenenie operatora soglasuetsya s printsipami podderjki tselostnosti, poetomu etot operator ne vsegda mojet bıt vıpolnen korrektno, daje esli sintaksicheski on zapisan pravilno Satrni qo’yish Jadvalga bitta satrni qo’yish. Bu operatorning boshqa modifikatsiyalarida biror jadvalning bir necha stari yoki so’rov natijasi jadvalga qo’yilishi mumkin. Satrni yangilash Bitta yoki filtratsiya shartini qanoatlantiruvchi bir necha ustunlaridagi bitta yoki ko’proq ustunlardagi qiymatlarni almashtirish DCL (Data Control Language) operatorlari: Operator ALTER DATABASE Ma’nosi MB ni o’zgartirish Amal Butun ma’lumotlar bazasiga tegishli bo’lgan ob’ektlar va cheklanishlar to’plamini o’zgartirish ALTER DBAREA MB saqlash soxasin o’zgartirish Avval yaratilgan saqlash soxasini o’zgartirish ALTER PASSWORD Parolni o’zgartirish Butun ma’lumotlar bazasi parolini o’zgartirish CREATE DATABASE MB yaratish Barcha parametrlarini ko’rsatgan xolda yangi ma’lumotlar bazasini yaratish CREATE DBAREA Saqdash soxasin yaratish YAngi saqlash soxasiniyaratish va unda ma’lumotlar joylashtirishga ruxsat etishi DROP DATABASE MB ni o’chirish Mavjud ma’lumotlar bazasini o’chirish (bunday amal bajarish vakolatiga ega bo’lgan foydalanuvchilar uchun) DROP DBAREA MB saqlash soxasin o’chirish Mavjud saqlash soxasini o’chirish (agar unda joriy vaqtda faol ma’lumotlar joylashmagan bo’lsa) GRANT Vakolat berish MB ba’zi ob’ektlari ustida bir qator amallarni bajarish xuquqini berish REVOKE Xuquqdan maxrum qilish Biror eb’ektga yoki ob’ekt ustida bajariladigan ba’zi amallarni bajarish xuquqidan maxrum qilish Ma’lumotlar bazasi jadvallarini modifikattsiyalashda DDL ning ALTER TABLE opeatorlari qo’llaniladi. Uning yordami bilan siz nafaqat jadvallarni, balki protseduralar, foydalanuvchilar, tassavurlar, jadval maydonlarini ham o'zgartirishingiz mumkin. Bunday buyruqlarning butun oilasi mavjud: ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER TRIGGER, ALTER USER, ALTER ROLE. ALTER buyrug'i yordamida siz quyidagilarni qilishingiz mumkin: Jadvalga ustun qo'shing; YAxlitlik cheklovini qo'shing; Jadval ustunidagi ma'lumotlar turini, uning o'lchamini, standart qiymatini o'zgartiring (ustunni qayta tasvirlash); Ustunni o'chirish; Triggerni yoki yaxlitlik cheklovni qo’yish, o'chirish, olib tashlash. Ma'lumotlar bazasining yaxlitligi - har qanday munosabatda asosiy kalit bo'lishi kerak va har bir tashqi kalit uchun asosiy kalit bo'lishi kerak. ALTER buyrug'ini ishlatish uchun foydalanuvchi ushbu jadvalga ALTER, INSERT va CREATE imtiyozlariga ega bo'lishi kerak. ALTER TABLE buyrug'ining sintaksisini ko'rib chiqamiz: ALTER TABLE [IGNORE] jadval_nomi jadvalni_modifikatsiyalash_optsiyalari IGNORE - bu asosiy kalitni himoya qilish uchun ixtiyoriy optsiya. ALTER TABLE buyrug'idan foydalanish misollari: 1. Jadvalga ustun qo’shish ALTER TABLE client(client_site varchar(10));// client jadvaliga client_site ustunini qo’shadi// 2. Ustun maydonining o'lchamini o'zgartirish ALTER TABLE client(client_passwd varchar(25)); 3. modify yordamida ustun maydonining o'lchamini o'zgartirish ALTER TABLE client modify client_passwd varchar(25); 4. Muayyan ustundan keyin ustun qo'shish ALTER TABLE client add client_site varchar(50) after client_telefon; //client jadvaliga client_telefon ustunidan keyin stolbets client_site ustunini qo’shish// Jadvaldan ustunni o'chirish uchun ALTER TABLE buyrug'ini DROP bilan birgalikda ishlatiladi, agar bitta ustunni o'chirish kerak bo'lsa, u quyidagicha ishlatiladi: ALTER TABLE jadval_nomi DROP ustun_nomi; Bunda ustun_nomi - o'chiriladigan ustunning nomi. Ma'lumotlar bazalarini loyihalashda barcha fikrlarni hisobga olish qiyin, shuning uchun vaqt o'tishi bilan ma'lumotlar bazasining tuzilishini o'zgartirish va kengaytirishga to'g'ri keladi. Buning uchun SQL tahrirlash so'rovlaridan foydalaniladi. Shuni aytib o'tish joizki, har bir DBMSda so'rovlar juda xilma-xil. Eng asosiysi, operatsiyaning ma'nosini tushunish va har bir satrni eslamaslikdir. SQL jadvalini tahrirlash uchun SQL-da so'rovlar mavjud emas, shuning uchun siz quyidagi strategiyadan foydalanishingiz mumkin: nusxa ko'chirmoqchi bo'lgan jadvalning nomini o'zgartiring va yangi maydonlar bilan yangi jadval yarating. Keyin ma'lumotlarni eski SQL jadvalidan yangisiga nusxalash: INSERT INTO table_2 SELECT id, name FROM table_1. Oxirgi qadam - eski jadvalni oddiygina o'chirish. SQL jadval satrlarini taqqoslash Darsimizning ushbu qismida biz LIKE, AND, OR, DISTINCT, GROUP BY operatorlari bilan bog'liq bo'lgan yanada murakkab SQL so'rovlarini ko'rib chiqamiz. 1. Operator LIKE: SELECT * FROM table_name WHERE field_1 LIKE ‘value’; (table_name jadvalidan field_1 maydonining qiymatlari value ga teng bo’lgan yozuvlarini qaytaradi) SELECT * FROM table_name WHERE field_1 LIKE ‘val%’; (table_name jadvalidan field_1 maydonining qiymatlari val dan boshlanadigan yozuvlarini qaytaradi) SELECT * FROM table_name WHERE field_1 LIKE ‘%lue’; (table_name jadvalidan field_1 maydonining qiymatlari lue bilan tugaydigan yozuvlarini qaytaradi); 2. Takroriy ma'lumotlarni yo'q qilish: SELECT DISTINCT field_1 FROM table_name; (table_name jadvalining field_1 maydoni buyicha unikal bo’lgan yozuvlarini qaytaradi); 4. Yozuvlarni guruhlash: SELECT field_1, COUNT(field_1) FROM table_name GROUP BY field_1; (table_name jadvalining field_1 maydoni buyicha yozuvlarni guruhlashtirib, field_1 maydoni buyicha unikal bo’lgan yozuvlar va ularning dublikatlar sonini qaytaradi). SELECT field_1, COUNT(field_1) FROM table_name GROUP BY field_1 HAVING COUNT(field_1) > 3; (vıvedet sgruppirovannıe zapisi SQL tablitsı table_name jadvalidan dublikatlar soni 3 dan ko’p bo’lgan yozuvlarni qaytaradi). Ma'lumotlar bazasi jadvalidagi maydonning qiymatini o'zgartirish uchun siz UPDATE so'rovini bajarishingiz kerak. UPDATE so'rovlari umumiy sintaksisi: UPDATE [LOW_PRIORITY] jadval_nomi SET1-maydon_nomi=1-qiymat, 2-maydon_nomi=2-qiymat,... [WHERE shartli_ifodalar] [LIMIT yozuvlar_soni] Agar LOW_PRIORITY ko'rsatilgan bo'lsa, boshqa mijozlar jadvalni o'qiyotganda o’lar bo’lganicha UPDATE kechiktiriladi.