Select id as Raqami, name as F.I.O., birthday as tugulgan_sana, seriya as Pasport_seriya, address as Manzili, age as Yoshi, phone as Telefon_nomeri from employee
2-jadval
Raqami
F.I.O.
Tugulgan_sana
Pasport_seriya
Manzili
Yoshi
Telefon_nomeri
1
Shokirov Alijon Shuhrat o'g'li
1999-09-04
AB0102003
Yakka bog' ko'chasi 1-uy 32-xonadon
20
712024494
2
Yoquvob Boburjon Yunusxonovich
1998-09-03
AA1478521
Gulshan ko'chasi 11-uy 21-xonadon
21
990128585
3
Samandarov Komilboy Sardor o'g'li
1997-03-04
AB8952145
Osiyo ko'chasi 12-uy 35-xonadon
22
974318626
4
Karimov Rasuljon Shokirovich
1997-09-03
AB0105440
Saroy ko'chasi 12-uy 36-xonadon
22
987452145
5
Obodova Shukurjon Karim qizi
1989-09-03
AB8965324
Turkison ko'chasi 10-uy 35-xonadon
30
974514875
Koʻrishimiz mumkinki hosil boʻlgan jadvalimizda ustunlar nomi oʻzbekcha.
Bizga hodimning ismi, manzili va telefon nomerini bitta ustunga joylashtirish va satrlar qoʻshish uchun quyidagicha kod yoziladi.
Select id as Raqami, `Ismi: `+name +` Manzili: `+address +`Telefon nomeri: `+ phone as `Hodim haqida toʻliq maʻlumot` from employee
3-jadval
Raqami
Hodim haqida toʻliq maʻlumot
1
Ismi: Shokirov Alijon Shuhrat o'g'li Manzili: Yakka bog' ko'chasi 1-uy 32-xonadon Telefon nomeri: 712024494
2
Ismi: Yoquvob Boburjon Yunusxonovich Manzili: Gulshan ko'chasi 11-uy 21-xonadon Telefon nomeri: 990128585
3
Ismi: Samandarov Komilboy Sardor o'g'li Manzili: Osiyo ko'chasi 12-uy 35-xonadon Telefon nomeri: 974318626
4
Ismi: Karimov Rasuljon Shokirovich Manzili: Saroy ko'chasi 12-uy 36-xonadon Telefon nomeri: 987452145
5
Ismi: Obodova Shukurjon Karim qizi Manzili: Turkison ko'chasi 10-uy 35-xonadon Telefon nomeri: 974514875
Qidirish amallarini ham bajarishimiz mumkin buni uchun WHERE va LIKE kalit soʻzidan foydalaniladi. Bu operatordan foydalanishning uchta sharti bor
Maydonning qiymatini birinchi harfidan solishtirib qidirish.
Maydonning qiymatini oxirgi harfidan solishtirib qidirish.
Maydonning qiymatini butun uzunligidan qidirish.
Birinchi holda like operatoridan keyin bittalik qoʻshtirnoq ichiga qidirilayotgan birikma yoziladi va undan keyin foiz belgisi (%) qoʻshiladi.
Select id as Raqami, name as F.I.O., birthday as tugulgan_sana, seriya as Pasport_seriya, address as Manzili, age as Yoshi, phone as Telefon_nomeri from employee where seriya like `%S `; natija:
4-jadval
Raqami
F.I.O.
Tugulgan_sana
Pasport_seriya
Manzili
Yoshi
Telefon_nomeri
1
Shokirov Alijon Shuhrat o'g'li
1999-09-04
AB0102003
Yakka bog' ko'chasi 1-uy 32-xonadon
20
712024494
3
Samandarov Komilboy Sardor o'g'li
1997-03-04
AB8952145
Osiyo ko'chasi 12-uy 35-xonadon
22
974318626
Ikkinchi holda like operatoridan keyin bittalik qoʻshtirnoq ichiga foiz belgisi (%) yoziladi va undan keyin qidirilayotgan birikma qoʻshiladi.
Select id as Raqami, name as F.I.O., birthday as tugulgan_sana, seriya as Pasport_seriya, address as Manzili, age as Yoshi, phone as Telefon_nomeri from employee where seriya like `i% `; natija:
5-jadval
Raqami
F.I.O.
Tugulgan_sana
Pasport_seriya
Manzili
Yoshi
Telefon_nomeri
1
Shokirov Alijon Shuhrat o'g'li
1999-09-04
AB0102003
Yakka bog' ko'chasi 1-uy 32-xonadon
20
712024494
3
Samandarov Komilboy Sardor o'g'li
1997-03-04
AB8952145
Osiyo ko'chasi 12-uy 35-xonadon
22
974318626
5
Obodova Shukurjon Karim qizi
1989-09-03
AB8965324
Turkison ko'chasi 10-uy 35-xonadon
30
974514875
Uchinchi holda like operatoridan keyin bittalik qoʻshtirnoq ichiga foiz belgisi (%) yoziladi va undan keyin qidirilayotgan birikma qoʻshiladi va yana foiz belgisi (%) yoziladi.
Select id as Raqami, name as F.I.O., birthday as tugulgan_sana, seriya as Pasport_seriya, address as Manzili, age as Yoshi, phone as Telefon_nomeri from employee where seriya like `%Sh% `; natija:
6-jadval
Raqami
F.I.O.
Tugulgan_sana
Pasport_seriya
Manzili
Yoshi
Telefon_nomeri
1
Shokirov Alijon Shuhrat o'g'li
1999-09-04
AB0102003
Yakka bog' ko'chasi 1-uy 32-xonadon
20
712024494
4
Karimov Rasuljon Shokirovich
1997-09-03
AB0105440
Saroy ko'chasi 12-uy 36-xonadon
22
987452145
5
Obodova Shukurjon Karim qizi
1989-09-03
AB8965324
Turkison ko'chasi 10-uy 35-xonadon
30
974514875
Keyingi vazifada hodimlarning belgilangan sondagilari haqida maʻlumotlarni chiqazib beruvchi soʻrov yozish belgilansin. Buning uchun limit kalit soʻzidan foydalanamiz
Select id as Raqami, name as F.I.O., birthday as tugulgan_sana, seriya as Pasport_seriya, address as Manzili, age as Yoshi, phone as Telefon_nomeri from employee limit 3;
7-jadval
Raqami
F.I.O.
Tugulgan_sana
Pasport_seriya
Manzili
Yoshi
Telefon_nomeri
1
Shokirov Alijon Shuhrat o'g'li
1999-09-04
AB0102003
Yakka bog' ko'chasi 1-uy 32-xonadon
20
712024494
2
Yoquvob Boburjon Yunusxonovich
1998-09-03
AA1478521
Gulshan ko'chasi 11-uy 21-xonadon
21
990128585
3
Samandarov Komilboy Sardor o'g'li
1997-03-04
AB8952145
Osiyo ko'chasi 12-uy 35-xonadon
22
974318626
Yuqoridagi soʻrovimizda dastlabki uchta hodim haqidagi maʻlumotlar 7-jadvalga chiqarilgan.
Maʻlumotlar bazasidagi bir nechta jadvallarni birlashtirib natijalarni olishimz ham mumkin. Bunda bizga JOIN yordamchi soʻzi yordam beradi. Bu operatorimiz asosan toʻrta koʻrinishda foydalaniladi:
(INNER) JOIN: Ikkala jadvalda ham mos keladigan qiymatlarga ega bo'lgan maʻlumotlarni qaytaradi.
LEFT (OUTER) JOIN: Chap jadvaldagi barcha maʻlumotlarni va o'ng jadvaldagi mos keladigan maʻlumotlarni qaytaradi.
RIGHT (OUTER) JOIN: Oʻng jadvaldagi barcha maʻlumotlarni va chap jadvaldagi mos keladigan maʻlumotlarni qaytaradi.
FULL (OUTER) JOIN: Agar chap yoki o'ng jadvalda mos keladigan bo'lsa, barcha maʻlumotlarni qaytaradi.
Soʻrovni yozishda bir nechta jadvallarni oʻzaro boʻlagan indeks maydonlar ishlatiladi. Masalan agar employee jadvalidagi maʻlumotlar ekranga chiqariladigan boʻlsa quyidagi koʻrinish hosil boʻladi:
Select * from employee
8-jadval
id
firstname
lastname
surename
birthday
…
district_id
position_id
gender_id
1
Alijon
Sokirov
Shuhrat oʻgʻli
1999-09-04
…
1
2
1
2
Yoqubjon
Boburjanov
Yunusovich
1998-09-03
…
2
1
1
3
Rasuljon
Karimov
Shokirovich
1997-09-03
…
6
5
1
4
Shukurjon
Obodova
Karim qizi
1989-09-03
…
5
3
2
5
Bekzod
Yaxshiyev
Obidjonovich
1987-10-01
…
2
6
1
Koʻrinayotganidek jadvalimizning oxirgi ustunlarida raqamlar qatnashgan bir qarashda bularni nima ekanligini tushunish murakkab. Foydalanuvchiga bu koʻrinishda taqdim etish makbul yechim emas. Shuning uchun yuqorida keltirilgan jadvallarni qoʻshish operatorlaridan foydalanamiz. Bu jadvallarimizning umumiy sxemasi quyidagi rasmda berigan. Yaratgan sxemamizda jadvallar bir-biri bilan indekslar orqali bogʻlangan va join operatorlarimizda ham shu indekslar orqali bir jadvaldan ikkinchi jadvalga murojat qilishimiz mumkin.
Y
uqoridagi sxemaga asossan hodimlarning qaysi tumanda tugʻulgani, millati va jinsi haqida maʻlumotlarni olishimiz uchun toʻrtda jadvalni bogʻlashimiz kerak. Buning uchun biz join operatoridan foydalanamiz. Malasan:
Y uqoridagi soʻrav select operatoridan keyin employee jadvalidan firstname, lastname, birthday va district, nation, gender jadvallaridan name_uz ustunlarini tanlash koʻrsdatilga. Tanlangan ustunlar bitta jadvalda emas va ularni bir-biriga bogʻlash uchun left join operatoridan foydalanilgan. Bundan employee jadvalimizdagi qoʻshicha jadvalarning identifikatsiyalovchi nomerlari orqali murojat qilinadi.
Natija yuqoridagi rasmda keltirilgan.
Nazorat savollari. SQL where operatori vazifasi ?
SQL tilida limit operatoridan foydalanishga misollar keltiring?
SQL tilida like operatoridan foydalanishga misollar keltiring?
SQL tilida join operatoridan foydalanishga misollar keltiring?