|
SELECT
column_names [,... n]
|
bet | 35/56 | Sana | 02.12.2023 | Hajmi | 7,78 Mb. | | #109653 |
SELECT
column_names [,... n]
FROM
Table_1 FULL JOIN Table_2
ON condition
12.4 – rasm. Full outer join operatorining Venn diagrammasi orqali ko’rinishi
Ishni bajarish tartibi
SQL INNER JOIN operatori
So`rov: SELECT *FROM zavod_xodimlari
INNER JOIN kon_xodimlari
ON zavod_xodimlari.FISH=kon_xodimlari.FISH;
Natija:
12.5 - rasm. Inner join qo’llanishi natijasi
2. LEFT JOIN operatori
So`rov: SELECT * FROM zavod_xodimlari
LEFT JOIN kon_xodimlari
ON zavod_xodimlari.manzili = kon_xodimlari.manzili;
Natija:
12.5 - rasm. Left join qo’llanishi natijasi
RIGHT JOIN operatori
So`rov: SELECT *FROM zavod_xodimlari
RIGHT JOIN kon_xodimlari
ON zavod_xodimlari.oyligi = kon_xodimlari.oyligi;
Natija:
12.6 – rasm. Right join qo’llanishi natijasi
3. CROSS JOIN operatori
So`rov: SELECT *FROM zavod_xodimlari
CROSS JOIN kon_xodimlari
ON zavod_xodimlari.ish_staji = kon_xodimlari.ish_staji;
Natija:
12.7– rasm. Cross join qo’llanishi natijasi
4. FULL OUTER JOIN operatori:
So`rov: SELECT *FROM zavod_xodimlari
FULL OUTER JOIN kon_xodimlari
ON zavod_xodimlari.FISH=kon_xodimlari.FISH;
Natija:
12.1– jadval. Full outer join qo’llanishi natijasi
Xodim_id
|
FISH
|
manzili
|
lavozimi
|
Ish_staji
|
oyligi
|
1
|
Eshbotayev Sardor
|
Lalmikor
|
Tegirmon mashinisti
|
10
|
7000000
|
2
|
Abirov Dilshod
|
Marjonbuloq
|
Labaratoriya mu
|
15
|
9000000
|
3
|
Narzullayev Oybek
|
Lalmikor
|
Boyitish ishlari boyich
|
15
|
10000000
|
4
|
Soliyev Elmurod
|
Marjonbuloq
|
Xavsizlik ishlari
|
10
|
7000000
|
5
|
Muhammadiyev Begzod
|
Olmali
|
Gruz mashinisti
|
12
|
8000000
|
6
|
Duvlonov Bunyod
|
Lalmikor
|
Ekalogiya va atrof mu
|
16
|
10000000
|
7
|
Shobotayev Shahzod
|
Oqtosh
|
Loyiha ishlari muhand
|
14
|
9000000
|
1
|
Aliyev Sarvar
|
Lalmikor
|
Burgulash mashinisti
|
10
|
7000000
|
2
|
Berdiyorov Bunyod
|
Mullabuloq
|
Bosh loyihachi
|
15
|
9000000
|
4
|
Mamirov Shahzod
|
Gobdin
|
Gruz mashinisti
|
12
|
8000000
|
5
|
Abirqulov Alisher
|
Moltob
|
Tashish mashinisti
|
10
|
7000000
|
Vazifalar
Yuqorida ko`rsatilganlardan foydalanib tanlangan variyantga muvofiq mavzu uchun MySQL da INNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN, FULL OUTER JOIN va ON standat so`zilari bilan ishlang.
Bajarilgan ishlar haqida hisobot tayyorlang (1-2-ilovalarga qarang).
Nazorat savollari
SQL tilidagi qanday JOIN larni bilasiz?
INNER JOIN qanday vazifani bajaradi?
LEFT JOIN qanday vazifani bajaradi?
RIGHT JOIN qanday vazifani bajaradi?
CROSS JOIN qanday vazifani bajaradi?
FULL OUTER JOIN qanday vazifani bajaradi?
13 - LABORATORIYA ISHI
Mavzu: Murakkab so‘rovlar yaratish. TOP, LIMIT yoki ROWNUM
Ishdan maqsad: Berilgan predmet soha ma`lumotlar bazasidan foydalanib TOP, LIMIT yoki ROWNUM lardan foydalanishni o`rganish.
Masalani qo`yilishi: Predmet soha ma`lumotlar bazasi shakllantirilgandan so`ng undan unumli foydalanishni tashkil etish maqsadida TOP, LIMIT yoki ROWNUM lar orqali so`rovlar yaratish.
Uslubiy ko`rsatmalar: SQL LIMIT va SQL TOP operatorlarining vazifasi belgilangan satrlarni chaqirishdan iborat. SQL TOP operatori MS SQL Serverda ishlaydi, SQL LIMIT operatori esa MySQLda va Oracle da ROWNUM operatori ishlaydi ularnig vazifasi bir hil.
SQL Server / MS Access Syntax:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
MySQL Syntax:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Oracle Syntax:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
Misol. MS SQL Serverda ishlash
SELECT TOP 3 * FROM Customers;
Misol. SQL da ishlash
SELECT * FROM Customers
LIMIT 3;
Misol. Oracleda ishlash
SELECT * FROM Customers
WHERE ROWNUM <= 3;
Ishni bajarish tartibi
Avvalgi bajargan korpus nomli jadvalni chaqirib olamiz.
SELECT * FROM korpus;
So`rov: SELECT * FROM korpus LIMIT 3;
Buyrug`ini kiritamiz natijada birinchi uchta satr hosil bo`ladi
Natija:
13.1 – rasm. Limit operatori orqali 3 ta qatorni ekranga chiqarish
So`rov: Select * korpus_nomi FROM korpus LIMIT 2,3;
Buyrug`ini yozamiz, natijada 2, 3 satrlar hosil bo`ladi.
Natija:
13.2 – rasm. Limit operatori orqali 2,3 qatorni ekranga chiqarish
So`rov: SELECT * korpus_nomi FROM korpus
ORDER BY korpus_nomi DESC LIMIT 2,3;
Natija:
13.3 rasm
Vazifalar
Yuqorida ko`rsatilganlardan foydalanib tanlangan variyantga muvofiq mavzu uchun MySQL da murakkab so`rovlar yaratish.
Bajarilgan ishlar haqida hisobot tayyorlang (1-2-ilovalarga qarang).
Nazorat savollari Murakkab so‘rovlar yaratish ushun qaysi operatorlardan foydalanish mumkin TOP operatorining vazifasi va u qaysi dasturda ishlaydi? LIMIT operatorining vazifasi va u qaysi dasturda ishlaydi? ROWNUM operatorining vazifasi va u qaysi dasturda ishlaydi?
14 - LABORATORIYA ISHI
Mavzu: SQL tilida INDEX yaratish
Ishdan maqsad: MySQL maxsus ustun qiymatlariga ega qatorlarni tezda topish uchun indekslardan foydalanishni o`rganish.
Masalani qo`yilishi: Bu laboratoriya ishida MySQL indekslari, shu jumladan indekslarni yaratish, indekslarni o'chirish, jadvalning barcha indekslarini sanab o'tish va MySQLda boshqa muhim ko'rsatkichlar bilan ishlanadi.
Uslubiy ko`rsatmalar: MySQL maxsus ustun qiymatlariga ega qatorlarni tezda topish uchun indekslardan foydalanadi. Indekssiz MySQL tegishli satrlarni topish uchun butun jadvalni skanerdan o'tkazishi kerak. Jadval qanchalik katta bo'lsa, u sekinroq qidiradi.
Indekslarni yaratish(creating indexes) - sizni indeks tushunchasi bilan tanishtiradi va jadvalning bir yoki bir nechta ustunlari uchun indeks qanday yaratilishini ko'rsatib beradi.
Indekslarni o'chirish(removing indexes)- jadvalning mavjud indeksini qanday olib tashlashni ko'rsatib beradi.
Jadval indekslarini ro'yxatlash(listing table indexes) - barcha indekslarni yoki jadvalning o'ziga xos indekslarini ro'yxat qilish to'g'risida ma'lumot beradi.
Noyob indekslar(unique indexes) - ustunlarda saqlanadigan aniq qiymatlarni ta'minlash uchun noyob indekslardan foydalanadi.
Prefiks indekslari(frefix indexses) - belgilar qatori ustuniga indeks yaratish uchun prefiks indeksidan qanday foydalanishni ko'rsatib beradi.
Ko'rinmas indekslar (invisible indexes) - indeks ko'rinishini qamrab oladi va indeksni ko'rinadigan yoki ko'rinmas qilib ko'rsatishni ko'rsatadi.
Kichik indekslar (descending indexes) - so'rov samaradorligini oshirish uchun pasayadigan indekslardan qanday foydalanishni ko'rsatib beradi.
Kompozit indekslar (composite indexes) - kompozit indekslarning qo'llanilishini tasvirlaydi va sizning so'rovlaringizni tezlashtirish uchun ularni qachon ishlatishingizni ko'rsatadi.
Klasterli indekslar (clustered indexes) - InnoDB jadvallaridagi klasterlangan indekslarni tushuntiradi.
Indeksning kardinalligi (index cardinatily) - indeksning kardiologiyasini tushuntiradi va shou indekslari buyrug'i yordamida uni qanday ko'rishni ko'rsatib beradi.
FOYDALANISH INDEX (use index hint) - jadvalda satrlarni topish uchun so'rovlar optimallashtiruvchisiga belgilangan indekslarning yagona ro'yxatidan foydalanishni ko'rsatishda USE INDEX maslahatini qanday ishlatishni ko'rsatib beradi.
FORCE INDEX hint - jadvaldan ma'lumotlarni tanlash uchun so'rov optimizatorini belgilangan indekslardan foydalanishga majbur qilish uchun FORCE INDEX ko'rsatmalaridan qanday foydalanishni ko'rsatib beradi.
Quyida bazi asosiy so’rovlar sintaksisi bilan tanishamiz:
|
| |