SQL asoslari: SELECT, WHERE, JOIN — amaliy qo'llanma

Saqlab olindi !

SQL asoslari: SELECT, WHERE, JOIN — amaliy qo'llanma

Ma'lumotlar bazasi bilan ishlaydigan har qanday dastur — SQL bilishingizni talab qiladi. Django ORM yoki Mongoose ishlatsangiz ham, qoqasida SQL ishlaydi. Shuning uchun SQL'ni tushunmasdan "backend dasturchi" bo'lish qiyin. Keling, amaliy misollar bilan boshlaylik.

Ma'lumotlar bazasi va jadval nima

Ma'lumotlar bazasi — bu Excel'ga o'xshash, lekin minglab, millionlab qatorlarni tez boshqara oladigan tizim. Ichida jadvallar bor, jadvalda esa ustunlar va qatorlar.

-- Misol jadval tuzilishi
CREATE TABLE talabalar (
    id      INTEGER PRIMARY KEY,
    ism     TEXT NOT NULL,
    yosh    INTEGER,
    guruh   TEXT,
    baho    INTEGER
);

-- Ma'lumot qo'shish
INSERT INTO talabalar (ism, yosh, guruh, baho)
VALUES ('Ali Karimov', 20, 'B-21', 88);

INSERT INTO talabalar (ism, yosh, guruh, baho)
VALUES ('Dilnoza Yusupova', 19, 'A-21', 95);

INSERT INTO talabalar (ism, yosh, guruh, baho)
VALUES ('Bobur Toshmatov', 21, 'B-21', 72);

SELECT — ma'lumotlarni olish

-- Hammani ko'rsatish
SELECT * FROM talabalar;

-- Faqat kerakli ustunlar
SELECT ism, baho FROM talabalar;

-- Tartiblash
SELECT ism, baho FROM talabalar
ORDER BY baho DESC;  -- yuqoridan pastga

-- Cheklash
SELECT ism, baho FROM talabalar
ORDER BY baho DESC
LIMIT 3;  -- faqat top 3 ta

WHERE — shartlar bilan filtrlash

-- 90 va undan yuqori baho olganlar
SELECT ism, baho FROM talabalar
WHERE baho >= 90;

-- Muayyan guruh
SELECT ism FROM talabalar
WHERE guruh = 'B-21';

-- Bir nechta shart
SELECT ism, baho FROM talabalar
WHERE guruh = 'B-21' AND baho > 80;

-- Yoki sharti
SELECT ism, baho FROM talabalar
WHERE baho < 60 OR baho > 90;

-- LIKE — qisman moslik
SELECT ism FROM talabalar
WHERE ism LIKE 'Ali%';  -- "Ali" bilan boshlanadigan ismlar

JOIN — bir nechta jadvalni birlashtirish

Real loyihalarda ma'lumot bitta jadvalda emas, bir nechtasida bo'ladi. Masalan:

-- Ikkinchi jadval
CREATE TABLE kurslar (
    id          INTEGER PRIMARY KEY,
    nomi        TEXT,
    talaba_id   INTEGER
);

INSERT INTO kurslar (nomi, talaba_id)
VALUES ('Python', 1), ('Django', 1), ('SQL', 2);

-- INNER JOIN — faqat ikkala jadvalda mavjudlar
SELECT talabalar.ism, kurslar.nomi
FROM talabalar
INNER JOIN kurslar ON talabalar.id = kurslar.talaba_id;

-- Natija:
-- Ali Karimov    | Python
-- Ali Karimov    | Django
-- Dilnoza Yusupova | SQL

Agregat funksiyalar — hisob-kitob

-- O'rtacha baho
SELECT AVG(baho) AS ortacha_baho FROM talabalar;

-- Eng yuqori va eng past
SELECT MAX(baho), MIN(baho) FROM talabalar;

-- Guruh bo'yicha hisoblash
SELECT guruh, COUNT(*) AS talabalar_soni, AVG(baho) AS ortacha
FROM talabalar
GROUP BY guruh;

Ko'p uchraydigan xatolar

Xato 1: SELECT * ni hamma joyda ishlatish. Katta jadvallarda bu sekin ishlaydi — faqat kerakli ustunlarni tanlang.

Xato 2: JOIN va WHERE tartibini aralashtirib yuborish. Avval JOIN, keyin WHERE yoziladi.

Maslahat: SQL'ni o'rganish uchun sqliteonline.com yoki db-fiddle.com saytlaridan foydalaning — hech narsa o'rnatmasdan brauzerda SQL yozib sinab ko'rishingiz mumkin.

+0

👍

+0

❤

+0

😎

+0

💥

+1

👽

+0

😐

+0

👎

Maqola teglari

Abdurahmon Rashidov Dasturlash 8
Facebook Telegram

Bu haftada ko'p o'qildi

Kompyuter tarmoqlarining asosiy turlari

Kompyuter tarmoqlarining asosiy turlari

53729 1321
Kesh xotira nima va uning vazifalari

Kesh xotira nima va uning vazifalari

7134 525
Umumiy tezkor tugmalar : shortcuts

Umumiy tezkor tugmalar : shortcuts

6738 165

Mavzuga oid

Freelance'dan birinchi pulni qanday topish mumkin

Freelance'dan birinchi pulni qanday topish mumkin

10 1
Birinchi IT ishga qanday CV yozish kerak?

Birinchi IT ishga qanday CV yozish kerak?

42 1
Git va GitHub: dasturchi uchun eng zarur vosita

Git va GitHub: dasturchi uchun eng zarur vosita

59 2