Ansichten verwalten

Datenbankdesign

Lis Sulmont

Curriculum Manager

Erstellen komplexerer Ansichten

  • Zusammenfassung: SUM(), AVG(), COUNT(), MIN(), MAX(), GROUP BY, usw.
  • ** JOINs
  • Bedingungen: WHERE, HAVING, UNIQUE, NOT NULL, AND, OR,>,<, usw.
Datenbankdesign

Zugriff auf eine Ansicht gewähren und widerrufen

GRANT privilege(s) oder REVOKE privilege(s)

ON object

oder

  • Privilegien: SELECT, INSERT, UPDATE, DELETE, usw.
  • Objekte: Tabelle, Ansicht, Schema usw.
  • Rollen: ein Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern
Datenbankdesign

Beispiel für die Erteilung und den Widerruf

$$\nsql\nGRANT UPDATE ON ratings TO PUBLIC; \n\n$$\nsql\nREVOKE INSERT ON films FROM db_user;\n\n

Datenbankdesign

Eine Ansicht aktualisieren

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

Nicht alle Ansichten können aktualisiert werden.

  • Die Ansicht besteht aus einer Tabelle.
  • Verwendet keine Fenster- oder Aggregatfunktion
1 https://www.postgresql.org/docs/9.5/sql-update.html
Datenbankdesign

Einfügen in eine Ansicht

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

Nicht alle Ansichten können eingefügt werden.

1 https://www.postgresql.org/docs/9.5/sql-insert.html
Datenbankdesign

Einfügen in eine Ansicht

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

Nicht alle Ansichten können eingefügt werden.

Fazit: Vermeide es, Daten über Ansichten zu ändern.

1 https://www.postgresql.org/docs/9.5/sql-insert.html
Datenbankdesign

Ansicht löschen

DROP VIEW view_name [ CASCADE | RESTRICT ];
  • RESTRICT (Standard): Gibt einen Fehler zurück, wenn es Objekte gibt, die von der Ansicht abhängen.
  • CASCADE: Löscht die Ansicht und alle Objekte, die von dieser Ansicht abhängen.
Datenbankdesign

Eine Ansicht neu definieren

CREATE OR REPLACE VIEW view_name AS new_query
  • Wenn es eine Ansicht mit dem Namen „ view_name “ gibt, wird sie ersetzt.
  • new_query muss die gleichen Spaltennamen, Reihenfolgen und Datentypen wie die alte Abfrage haben
  • Die Spaltenausgabe kann unterschiedlich sein.
  • Neue Spalten können am Ende hinzugefügt werden.

Wenn diese Kriterien nicht erfüllt werden können, lösche die vorhandene Ansicht und erstelle eine neue.

1 https://www.postgresql.org/docs/9.2/sql-createview.html
Datenbankdesign

Eine Ansicht ändern

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
Datenbankdesign

Lass uns üben!

Datenbankdesign

Preparing Video For Download...