व्यूज़ प्रबंधन

डेटाबेस डिज़ाइन

Lis Sulmont

Curriculum Manager

और जटिल व्यू बनाना

  • एग्रीगेशन: SUM(), AVG(), COUNT(), MIN(), MAX(), GROUP BY आदि
  • जॉइन्स: INNER JOIN, LEFT JOIN. RIGHT JOIN, FULL JOIN
  • कंडीशनल्स: WHERE, HAVING, UNIQUE, NOT NULL, AND, OR,>,< आदि
डेटाबेस डिज़ाइन

व्यू पर एक्सेस देना और हटाना

GRANT privilege(s) या REVOKE privilege(s)

ON object

TO role या FROM role

  • प्रिविलेजेज़: SELECT, INSERT, UPDATE, DELETE आदि
  • ऑब्जेक्ट्स: table, view, schema आदि
  • रोल्स: डेटाबेस यूज़र या यूज़र्स का समूह
डेटाबेस डिज़ाइन

Grant और Revoke का उदाहरण

$$

GRANT UPDATE ON ratings TO PUBLIC;  

$$

REVOKE INSERT ON films FROM db_user;
डेटाबेस डिज़ाइन

व्यू अपडेट करना

UPDATE films SET kind = 'Dramatic' WHERE kind = 'Drama';

हर व्यू अपडेटेबल नहीं होता

  • व्यू एक ही टेबल से बना हो
  • विंडो या एग्रीगेट फंक्शन उपयोग न हो
1 https://www.postgresql.org/docs/9.5/sql-update.html
डेटाबेस डिज़ाइन

व्यू में डेटा डालना

INSERT INTO films (code, title, did, date_prod, kind)
    VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');

हर व्यू इन्सर्टेबल नहीं होता

1 https://www.postgresql.org/docs/9.5/sql-insert.html
डेटाबेस डिज़ाइन

व्यू में डेटा डालना

INSERT INTO films (code, title, did, date_prod, kind)
    VALUES ('T_601', 'Yojimbo', 106, '1961-06-16', 'Drama');

हर व्यू इन्सर्टेबल नहीं होता

निष्कर्ष: व्यूज़ से डेटा मॉडिफाई करने से बचें

1 https://www.postgresql.org/docs/9.5/sql-insert.html
डेटाबेस डिज़ाइन

व्यू ड्रॉप करना

DROP VIEW view_name [ CASCADE | RESTRICT ];
  • RESTRICT (डिफ़ॉल्ट): अगर व्यू पर निर्भर ऑब्जेक्ट्स हों, तो एरर देता है
  • CASCADE: व्यू और उस पर निर्भर सभी ऑब्जेक्ट्स ड्रॉप करता है
डेटाबेस डिज़ाइन

व्यू को फिर से परिभाषित करना

CREATE OR REPLACE VIEW view_name AS new_query
  • अगर view_name वाला व्यू मौजूद है, तो रिप्लेस हो जाएगा
  • new_query में पुराने क्वेरी जैसे ही कॉलम नाम, क्रम, और डेटा टाइप होने चाहिए
  • कॉलम आउटपुट अलग हो सकता है
  • अंत में नए कॉलम जोड़े जा सकते हैं

यदि ये शर्तें पूरी न हों, तो मौजूदा व्यू ड्रॉप करें और नया बनाएँ

1 https://www.postgresql.org/docs/9.2/sql-createview.html
डेटाबेस डिज़ाइन

व्यू को बदलना

ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
ALTER VIEW [ IF EXISTS ] name OWNER TO new_owner
ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )
1 https://www.postgresql.org/docs/9.2/sql-alterview.html
डेटाबेस डिज़ाइन

अभ्यास करते हैं!

डेटाबेस डिज़ाइन

Preparing Video For Download...