SQL VIEW — virtual jadval

Ba’zi so’rovlar uzun va murakkab bo’ladi — masalan uch jadvalni JOIN qiluvchi hisobot. Uni har safar qayta yozish zerikarli va xatoga moyil. VIEW shu muammoni yechadi: bir marta yozilgan so’rovga nom beriladi, keyin uni oddiy jadval kabi ishlatasiz.

Muammo: takrorlanadigan uzun so’rov

Buyurtmalarni to’liq ism bilan ko’rish uchun har safar shu so’rovni yozamiz:

SELECT m.ism, p.nom, b.soni, b.sana
FROM buyurtmalar AS b
JOIN mijozlar AS m ON b.mijoz_id = m.id
JOIN mahsulotlar AS p ON b.mahsulot_id = p.id;

O’zingiz ishga tushirib ko’ring — so’rovni tahrirlashingiz ham mumkin:

SQL · namuna baza

Bu hisobot kunda o’nlab marta kerak bo’lsa — har safar to’rt qatorni qayta terish noqulay.

Yechim: CREATE VIEW

So’rovga CREATE VIEW bilan nom beramiz:

CREATE VIEW buyurtma_hisoboti AS
SELECT m.ism, p.nom, b.soni, b.sana
FROM buyurtmalar AS b
JOIN mijozlar AS m ON b.mijoz_id = m.id
JOIN mahsulotlar AS p ON b.mahsulot_id = p.id;

Endi buyurtma_hisoboti — go’yo jadval. Uni oddiygina so’raymiz:

SELECT * FROM buyurtma_hisoboti;

Natija:

ism nom soni sana
Aziz Non 3 2026-07-01
Aziz Choy 1 2026-07-02
Dilnoza Olma 10 2026-07-02
Bobur Sut 2 2026-07-05
Dilnoza Guruch 5 2026-07-06
Aziz Suv 4 2026-07-08

View ustidan yana so’rov

View — oddiy jadval kabi, shuning uchun uni WHERE yoki boshqa shart bilan cheklash mumkin:

SELECT * FROM buyurtma_hisoboti WHERE ism = 'Aziz';

Bu faqat Azizning buyurtmalarini beradi — asl uzun so’rovni umuman ko’rmaymiz ham.

Amaliy mashq

Ko’rinish yarating:

  1. Arzon mahsulotlar uchun CREATE VIEW yozing;
  2. undan SELECT qiling;
  3. view’ga WHERE qo’shib so’rov yozing;
  4. DROP VIEW bilan o’chiring;
  5. JOIN natijasidan view yarating: mijoz, mahsulot, soni.

View haqiqiy jadvalmi yoki saqlangan so’rovmi? 3-qadam javob beradi.

Qisqacha xulosa

  • VIEW — nom berilgan, saqlangan SELECT; virtual jadval kabi ishlaydi.
  • CREATE VIEW nom AS SELECT ... bilan yaratiladi.
  • Unga oddiy jadval kabi murojaat qilinadi (SELECT, WHERE bilan).
  • Ma’lumotni o’zida saqlamaydi — har safar asl jadvallardan oladi.
  • Foydasi: uzun so’rovni soddalashtirish va mantiqni takrorlamaslik.

Keyingi darsda tranzaksiya — bir nechta amalni “hammasi yoki hech nima” tarzida bajarishni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi