Uploaded by yusufxon rustamov

6-mavzu. Ma’lumotlar bazasi jadvallarini modifikatsiyalash

advertisement
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.
Download