Bog’lanishlar (JOINS) — 1-qism — SQL’ning eng kuchli imkoniyati: ikki yoki undan ortiq jadvalni bir-biriga bog’lab, ma’lumotni birlashtirish. Real bazalarda ma’lumot bir necha jadvalga bo’linadi: foydalanuvchilar bir jadvalda, ularning buyurtmalari boshqasida. JOIN aynan shu jadvallarni bog’lab, to’liq manzarani beradi.
JOIN — ikki yoki undan ortiq jadvalni umumiy ustun orqali bog’lab, ma’lumotni birlashtiradigan SQL amali. Eng ko’p ishlatiladigan turi — INNER JOIN.
Ikki jadval
Ushbu darsda ikki jadval bilan ishlaymiz. foydalanuvchilar:
| id | ism |
|---|---|
| 1 | Farrux |
| 2 | Master Sherkulov |
| 3 | Aziz |
Va buyurtmalar (foydalanuvchi_id orqali foydalanuvchiga bog’langan):
| id | foydalanuvchi_id | mahsulot |
|---|---|---|
| 101 | 1 | Telefon |
| 102 | 2 | Noutbuk |
| 103 | 1 | Smart soat |
INNER JOIN
INNER JOIN ikki jadvaldagi mos keladigan qatorlarni birlashtiradi. Kim qaysi mahsulotni buyurtma qilganini ko’ramiz:
SELECT foydalanuvchilar.ism, buyurtmalar.mahsulot
FROM foydalanuvchilar
INNER JOIN buyurtmalar
ON foydalanuvchilar.id = buyurtmalar.foydalanuvchi_id;
Natija:
| ism | mahsulot |
|---|---|
| Farrux | Telefon |
| Master Sherkulov | Noutbuk |
| Farrux | Smart soat |
ON foydalanuvchilar.id = buyurtmalar.foydalanuvchi_id — ikki jadvalni bog’lovchi shart. Har bir buyurtma o’z foydalanuvchisi bilan birlashdi. Aziz chiqmadi, chunki uning buyurtmasi yo’q — INNER JOIN faqat mos keladigan qatorlarni beradi.
Bog’lanish qanday ishlaydi?
JOIN ning kaliti — umumiy ustun. Bu yerda foydalanuvchilar.id va buyurtmalar.foydalanuvchi_id bir xil qiymatni saqlaydi va ular orqali jadvallar bog’lanadi:
| foydalanuvchilar.id | buyurtmalar.foydalanuvchi_id | Bog’lanish |
|---|---|---|
| 1 (Farrux) | 1 | mos keladi |
| 2 (Master Sherkulov) | 2 | mos keladi |
| 3 (Aziz) | — | mos yo’q |
Bu bog’lovchi ustun tashqi kalit (foreign key) deb ataladi — bu haqda keyingi darslarda batafsil to’xtalamiz.
Taxallus bilan qisqartirish
Uzun jadval nomlarini har safar yozmaslik uchun taxallus (AS yoki shunchaki bo’sh joy) ishlatiladi:
SELECT f.ism, b.mahsulot
FROM foydalanuvchilar f
INNER JOIN buyurtmalar b
ON f.id = b.foydalanuvchi_id;
Natija bir xil bo’ladi:
| ism | mahsulot |
|---|---|
| Farrux | Telefon |
| Master Sherkulov | Noutbuk |
| Farrux | Smart soat |
foydalanuvchilar f — jadvalga f taxallusini berdi. Endi f.ism deb yozish foydalanuvchilar.ism dan ancha qisqa. Bu katta so’rovlarni o’qiladigan qiladi.
Xulosa
Bu bo’limda JOIN tushunchasini, INNER JOIN bilan jadvallarni birlashtirishni, umumiy ustun (bog’lanish) rolini va taxalluslarni ko’rib chiqdik. JOIN — SQL’da ma’lumotni birlashtirishning asosidir. Keyingi darsda JOIN turlarini (LEFT, RIGHT) chuqurroq ko’rib chiqamiz.