CREATE TABLE `mijozlar` (
`xodimlar_id` INT(11) NOT NULL AUTO_INCREMENT,
`Ism` VARCHAR(15) NOT NULL,
`Familyasi` VARCHAR(50) NOT NULL,
`Oylik_maoshi` TEXT NOT NULL,
`Ish_staji` FLOAT(9,2) NOT NULL,
`soni` FLOAT NOT NULL,
PRIMARY KEY (`xodimlar_id`),
INDEX `soni` (`soni`),
FULLTEXT INDEX `Ism_Familyasi_Oylik_maoshi` (`Ism`, `Familyasi`, `Oylik_maoshi`),
UNIQUE INDEX `Ish_staji` (`Ish_staji`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
/////////////////////////////////////////////////////////////////////
Indexlar yordamida qidirib toppish.
SELECT * FROM mijozlar
WHERE
MATCH (`Ism`, `Familyasi`, `Oylik_maoshi`)
AGAINST('+Juliyev' IN BOOLEAN MODE)
union all
select * from bank_2
WHERE
MATCH (`imya`, `Ish_stajlari`, `QOSHISH`)
AGAINST('+toliq' IN BOOLEAN MODE);
2-RASM. Mijozlar nomli jadvalimizdagi maydon elementlari va indexlar.
/////////////////////////////////////////////////////////////////////////////
SELECT * FROM mijozlar
WHERE
MATCH (`Ism`, `Familyasi`, `Oylik_maoshi`)
AGAINST('+Juliyev' IN BOOLEAN MODE)
union all
select * from bank_2
WHERE
MATCH (`imya`, `Ish_stajlari`, `QOSHISH`)
AGAINST('+toliq' IN BOOLEAN MODE);
3-RASM. INDEXlar orqali ikkita jadvallardagi obyektlarni qidirib topish.
T
JADVAL-1
OPSHIRIQLAR:
INDEXLAR
JADVAL-3
JADVAL-2
JADVAL-4
Jadvallarni indexlar yordamida boglab, kerakli obyektlarni qidirib topish.
S ELECT * FROM XODIMLAR
ID
|
Ism
|
Familyasi
|
Oylik_maoshi
|
Ish_staji
|
|
Shohrux
|
Kenjayev
|
1,200000
|
Yuqori
|
|
Jalol
|
Umirov
|
500000
|
O’rtacha
|
|
Asqar
|
Lapasov
|
1,300000
|
Yuqori
|
4.
|
Umida
|
Poziljonova
|
1,400000
|
Yuqori
|
SELECT * FROM KORXONA
ID
|
Ish_Xodimlari
FAMILYASI
|
MAHSULOT
|
ISHLAB CHIQARILGAN SANASI
|
MAHSULOT
RAQAMI
|
KAFOLATI
|
|
Hamidov
|
Sovutgich
|
22.06.2016
|
3
|
yil
|
2
|
Kamolov
|
Notebook
|
02.11.2016
|
4
|
yil
|
3
|
Lapasov
|
TELEFON
|
18.09.2013
|
3
|
1 yil
|
4.
|
Karimova
|
Micro elektr pech
|
14.06.2014
|
2
|
2 yil
|
5.
|
Olimov
|
MEBEL
|
05.03.2016
|
1
|
-
|
NAZARIY SAVOLLAR.
INDEXLAR nima va ularni tushintirib bering.
INDEXLAR qanday qilib boglanadi, ularning turlari va vazifalari haqida tushintirib bering.
INDEXlar turlari, Yangi index yarating va uni ishga tushiring.
DROP INDEX haqida tushuncha bering.
UNIQUE INDEX nima? Uning vazifasi jadvaldagi maydonni boglashi haqida tushintirib bering. ALTER TABLE `T_NAME` yangi ALTER INDEX qushing.
UNION ALL yordamida bir nechta jadvallarning maydonlarini boglab index yordamida qidirib toping.
SPATIAL INDEX vazifasi, misollar yordamida tushintiring.
MATCH va AGAINST operatorlari haqida tushuncha bering.
Topshiriqlar:
Har bir talaba to’rtta jadvallarini bir-biri bilan bog’lab, ularning maydonlariga INDEX larni o’rnatadi.
FULLTEXT INDEX yordamida to’rtta jadvallardan kerakli obyektlarni qidirib toping.
Indexdan Jadvalingizdagi «yozuv_1» so’zi qatnashgan va «yozuv_2» suzi qatnashmagan yozuvlarni tanlab oling. Mazkur holat to’rtta jadvallarni bog’langanda amalga oshirilsin.
7-Tajriba ishi
Mavzu: Манбаа ёзувларини, ёзувлар тартибларини ва натижавий функсияларни алмаштириш.
Ishdan asosiy maqsad:
TRIGGERlar yordamida jadvallarga murojaat eting.
AFTER->BEFORE-> UPDATE,DELETE,INSERT orqali
Bir jadvaldan ikkinchi jadvallardagi o’zgarishlarni triggerlar yordamida bog’lang.
TRIGGERlar yordamida jadvallardagi foydalanuvchi huquqlarini vaqtincha cheklang, sungra uni ishga tushiring.
DROP TRIGGER ni hosil qiling.
NAMUNA:
DELIMITER $$
CREATE DEFINER=`root`@`localhost`
TRIGGER `UZGARTIRISH`
BEFORE UPDATE ON `topshiriq_6`
FOR EACH ROW begin
insert into laboratoriya_6
set action = 'update',
INSERT INTO XODIMLAR
SET Ism ='qushish'
soni=old.soni,
ismi=old.ismi,
Ism=old.Ism;
sanasi=now();
end $$;
SELECT * FROM TOPSHIRIQ_6
2-Rasm. Laboratoriya_6 jadvaliga ma’lumotlarni kiritish.
3-Rasm. Ikkinchi jadvaldagi o’zgarish 1-jadvalda hosil bulyapti.
TRIGGERlar yordamida jadval elementlariga murojaatlarni taqiqlash
DELIMITER $$
CREATE TRIGGER contacts_before_delete
BEFORE INSERT
ON contacts FOR EACH ROW
BEGIN
DECLARE vUser varchar(50);
-- Find username of person performing the DELETE into table
SELECT USER() INTO vUser;
-- Insert record into audit table
INSERT INTO contacts_audit
( contact_id,
deleted_date,
deleted_by)
VALUES
( OLD.contact_id,
SYSDATE(),
vUser );
END $$;
// Bu yerda vUSER varchar(50) – TRIGGER funksiyasi uchun alohida maydon yaratib olinadi.
8-Tajriba ishi
Mavzu: MySQL ma’lumotlar bazasi yordamida proceduralarni tashkil etish.
Ishning asosiy maqsadi:
Procedura mysql ma’lumotlar bazasida kiritilgan barcha ma’lumotlarni ,objectlarni avtomatik qidirib topishda kerak bo’ladi. Qulayligi unda tayyor forma yaratilgan bo’lib, mazkur forma orqali db objectlarni keraklisini CALL chaqiruv opertori yordamida qidirib topadi.
Procedura -barcha bir nechta jadvallardagi ma’lumotlarni bazadan avtomatik tarzda qidirib topadi. Procedurada CALL operatori mavjud bo’lib, ma’lumotlar bazasidagi barcha objectlarni chaqiruv holatda qidiradi.
Maydondagi barcha elementlarni qidirib topadi.
DELIMITER$$ funksiyasi procedura funksiyasi ishlash holatini ta’minlab beradi.
DECLARE - DB dagi barcha maydon elementlarini procedura funksiyasi yordamida chaqirib beradi.
MySQL ma’lumotlar bazasida procedurani tashkil etish.
delimiter $$
CREATE PROCEDURE myProc_4(in_customer_id INT)
BEGIN
DECLARE l_Ismlar VARCHAR(30);
DECLARE l_Ish_stajlari VARCHAR(30);
DECLARE l_Oylik_maoshlari INT(11);
DECLARE l_ism VARCHAR(30);
DECLARE l_Ish_staji VARCHAR(30);
DECLARE l_Oylik_maoshi INT(11);
SELECT Ismlar, Ish_stajlari,Oylik_maoshlari,ism,Ish_staji,Oylik_maoshi
INTO l_Ismlar,l_Ish_stajlari,l_Oylik_maoshlari,l_ism,l_Ish_staji,l_Oylik_maoshi
FROM xarid
inner join bank
where in_customer_id=mijoz_id and in_customer_id=bank_id;
select l_Ismlar;
select l_Ish_stajlari;
select l_Oylik_maoshlari;
select l_ism;
select l_Ish_staji;
select l_Oylik_maoshi;
END$$
delimiter $$
CREATE PROCEDURE myProc_5(in_customer_id INT)
BEGIN
DECLARE l_Ismlar VARCHAR(30);
DECLARE l_Ish_stajlari VARCHAR(30);
DECLARE l_Oylik_maoshlari INT(11);
DECLARE l_ism VARCHAR(30);
DECLARE l_Ish_staji VARCHAR(30);
DECLARE l_Oylik_maoshi INT(11);
SELECT Count(*)
INTO l_Ismlar,l_Ish_stajlari,l_Oylik_maoshlari,l_ism,l_Ish_staji,l_Oylik_maoshi
FROM xarid
inner join bank
where in_customer_id=mijoz_id and in_customer_id=bank_id;
select l_Ismlar;
select l_Ish_stajlari;
select l_Oylik_maoshlari;
select l_ism;
select l_Ish_staji;
select l_Oylik_maoshi;
1.1-Rasm. Procedura yaratgan forma
1.2-Rasm. Jadvallardagi barcha 2_id dagi barcha objectlarni chaqirish
END$$
Natija:
1.3-Rasm. MySql db da procedura funksiyasini tashkil etish.
1.4-Rasm. Procedura yaratgan forma
1.5-Rasm. Procedura yaratgan forma orqali tartib nomerlarini e’lon qilish.
Topshiriqlar:
MySql ma’lumotlar bazasida proceduralarni yaratish bosqichlarni tushintirib bering.
5 ta jadvallardan tashkil topgan ma’lumotlar bazasida procedura funksiyasini quring va uni ishga tushiring.
9-Tajriba ishi
Mavzu: "Клиент - сервер " технологияси, SQL сервер ва ундан фойдаланиш.
CREATE PROCEDURE OPERATORI YORDAMIDA JADVALLARDAGI OBYEKTLARNI TRANZAKSIYALASH.
Do'stlaringiz bilan baham: |