59 / 100

VIEW

Ko'rinishlar - Virtual jadvallar

Kirish: Ushbu qo'llanmada siz PostgreSQL ko'rinishlari (VIEW) bilan tanishasiz va murakkab so'rovlarni soddalashtirish hamda qayta ishlatish uchun ulardan qanday foydalanishni o'rganasiz.

PostgreSQL VIEW ga kirish

Ko'rinish (VIEW) — bu ma'lumotlar bazasi serverida saqlanadigan nomlangan so'rovdir. Ko'rinishga oddiy jadval kabi so'rov yuborish mumkin, biroq u ma'lumotlarni jismonan diskda saqlamaydi. Shu sababli ko'rinish virtual jadval deb ataladi.

Eslatma: PostgreSQLda ma'lumotlarni jismoniy saqlovchi maxsus ko'rinishlar ham mavjud bo'lib, ular materiallashtirilgan ko'rinishlar (Materialized Views) deyiladi.

Ko'rinish yaratish: CREATE VIEW

Ko'rinish yaratish uchun CREATE VIEW buyrug'idan foydalaniladi:

query.sql
CREATE VIEW view_name 
AS 
query;

Ushbu sintaksisda:

  • view_name — yaratilayotgan ko'rinish nomi.
  • query — ko'rinishni ifodalovchi asosiy so'rov (defining query). Ushbu so'rov murojaat qiladigan jadvallar baza jadvallari (base tables) deb ataladi.

Masalan, products va categories jadvallarini birlashtiruvchi product_view nomli ko'rinish yaratamiz:

query.sql
CREATE VIEW product_view 
AS
SELECT
  product_id,
  product_name,
  price,
  category_name
FROM
  products
  JOIN categories USING (category_id);

Ko'rinishdan ma'lumotlarni so'rash

Ko'rinish yaratilgandan so'ng, unga xuddi oddiy jadvalga murojaat qilgandek SELECT so'rovi yuborish mumkin:

query.sql
SELECT
  product_name,
  category_name,
  price
FROM
  product_view;

PostgreSQL ushbu so'rovni qabul qilganda, orqa fonda ko'rinishning asl ta'rif so'rovini ishga tushiradi.

Ko'rinishlar orqali murakkab JOIN so'rovlarini bir marta yozib, keyin ulardan juda oson va takroriy foydalanish mumkin:

query.sql
SELECT
  category_name,
  MAX(price) AS price
FROM
  product_view
GROUP BY
  category_name
ORDER BY
  price;

Bu so'rov har safar jadvallarni qaytadan qo'lda birlashtirishdan ko'ra ancha tushunarli va qisqadir.

Ko'rinishni o'zgartirish: CREATE OR REPLACE VIEW

Mavjud ko'rinishni o'zgartirish uchun CREATE OR REPLACE VIEW dan foydalanish mumkin:

query.sql
CREATE OR REPLACE VIEW view_name 
AS 
query;

Masalan, product_view ga brend nomini ham qo'shamiz:

query.sql
CREATE OR REPLACE VIEW product_view AS
SELECT
  product_id,
  product_name,
  price,
  category_name,
  brand_name
FROM
  products
  JOIN categories USING (category_id)
  JOIN brands USING (brand_id);

Ko'rinish asosida yangi ko'rinish yaratish

PostgreSQL mavjud ko'rinish ustiga yana boshqa bir ko'rinish qurish imkonini beradi. Masalan, faqat smartfonlarni ajratib oluvchi smartphone_view ni yaratish:

query.sql
CREATE OR REPLACE VIEW smartphone_view AS
SELECT
  product_id,
  product_name,
  price,
  brand_name
FROM
  product_view
WHERE
  category_name = 'Smartphones';

Ko'rinishni o'chirish: DROP VIEW

Ko'rinishni o'chirib tashlash uchun DROP VIEW buyrug'i ishlatiladi:

query.sql
DROP VIEW IF EXISTS view_name;

Agar ko'rinishga boshqa ko'rinishlar bog'langan (qaram) bo'lsa, PostgreSQL xatolik beradi. Barcha bog'liq ko'rinishlar bilan birgalikda o'chirish uchun CASCADE kalit so'zidan foydalaniladi:

query.sql
DROP VIEW IF EXISTS product_view CASCADE;

Xulosa

  • Ko'rinish (VIEW) — ma'lumotlar bazasida saqlanuvchi virtual jadval bo'lib, murakkab so'rovlarni ixchamlashtirish va qayta ishlatish uchun xizmat qiladi.
  • Ko'rinishni yangilash uchun CREATE OR REPLACE VIEW, o'chirish uchun esa DROP VIEW buyrug'i ishlatiladi.