Darsliklar SQL Bog’lanishlar (JOINS) 1-qism

SQL SQL Bog’lanishlar (JOINS) 1-qism

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.

JOINikki 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.