PostgreSQL - GÖRÜNÜM

Görünümler sözde tablolardır. Yani gerçek tablolar değiller; yine de SELECT için sıradan tablolar olarak görünür. Görünüm, sıradan bir tablodan belirli sütunları veya belirli satırları seçerek gerçek bir tablonun bir alt kümesini temsil edebilir. Bir görünüm, birleştirilmiş tabloları bile temsil edebilir. Görünümlere ayrı izinler atandığından, bunları kullanıcıların bir tablonun yalnızca belirli satırlarını veya sütunlarını görebilmesi için tablo erişimini kısıtlamak için kullanabilirsiniz.

Görünüm, bir tablonun tüm satırlarını veya bir veya daha fazla tablodan seçilen satırları içerebilir. Bir görünüm oluşturmak için yazılı PostgreSQL sorgusuna bağlı olarak bir veya daha fazla tablodan bir görünüm oluşturulabilir.

Bir tür sanal tablo olan görünümler, kullanıcıların aşağıdakileri yapmasına izin verir -

  • Verileri, kullanıcıların veya kullanıcı sınıflarının doğal veya sezgisel bulacağı şekilde yapılandırın.

  • Verilere erişimi, bir kullanıcının tam tablo yerine yalnızca sınırlı verileri görebileceği şekilde kısıtlayın.

  • Rapor oluşturmak için kullanılabilecek çeşitli tablolardaki verileri özetleyin.

Görünümler sıradan tablolar olmadığından, bir görünümde DELETE, INSERT veya UPDATE deyimi yürütemeyebilirsiniz. Ancak, bir görünümde DELETE, INSERT veya UPDATE kullanımıyla ilgili bu sorunu gidermek için bir KURAL oluşturabilirsiniz.

Görünümler Oluşturma

PostgreSQL görünümleri, CREATE VIEWBeyan. PostgreSQL görünümleri tek bir tablodan, birden çok tablodan veya başka bir görünümden oluşturulabilir.

Temel CREATE VIEW sözdizimi aşağıdaki gibidir -

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

Normal PostgreSQL SELECT sorgusunda kullandıklarınıza çok benzer bir şekilde birden çok tabloyu SELECT deyiminize dahil edebilirsiniz. İsteğe bağlı TEMP veya TEMPORARY anahtar sözcüğü varsa, görünüm geçici alanda oluşturulur. Geçerli oturumun sonunda geçici görünümler otomatik olarak bırakılır.

Misal

ŞİRKET tablosunun aşağıdaki kayıtlara sahip olduğunu düşünün :

id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  3 | Teddy |  23 | Norway     |  20000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000

Şimdi, aşağıdaki COMPANY tablosundan bir görünüm oluşturmak için bir örnek. Bu görünüm, COMPANY tablosundan yalnızca birkaç sütuna sahip olmak için kullanılır -

testdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

Şimdi, gerçek bir tabloyu sorgularken COMPANY_VIEW'ı benzer şekilde sorgulayabilirsiniz. Örnek aşağıdadır -

testdb=# SELECT * FROM COMPANY_VIEW;

Bu, aşağıdaki sonucu verecektir -

id | name  | age
----+-------+-----
  1 | Paul  |  32
  2 | Allen |  25
  3 | Teddy |  23
  4 | Mark  |  25
  5 | David |  27
  6 | Kim   |  22
  7 | James |  24
(7 rows)

Görünümleri Bırakma

Bir görünümü bırakmak için, sadece DROP VIEW deyimini kullanarak view_name. Temel DROP VIEW sözdizimi aşağıdaki gibidir -

testdb=# DROP VIEW view_name;

Aşağıdaki komut, son bölümde oluşturduğumuz COMPANY_VIEW görünümünü silecek -

testdb=# DROP VIEW COMPANY_VIEW;