10 Sichten (Views)
12-2 Ziele Verständnis einer View Erzeugen einer View Lesen von Daten durch eine Sicht Ändern der Definition von Views Einfügen, Ändern und Löschen von Daten über eine Sicht Löschen einer View Verständnis einer View Erzeugen einer View Lesen von Daten durch eine Sicht Ändern der Definition von Views Einfügen, Ändern und Löschen von Daten über eine Sicht Löschen einer View
12-3 Datenbank-Objekte Beschreibung Basiseinheit; besteht aus Zeilen und Spalten Logische Teilmenge von Daten aus ein oder mehr Tabellen Generiert Primärschlüsselwerte Verbessert die Performance von Abfragen Alternativer Name für ein Objekt Objekt Tabelle View Sequence Index Synonym
12-4 Was ist eine View? EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 17-NOV BLAKE MANAGER MAY CLARK MANAGER JUN JONES MANAGER APR MARTIN SALESMAN SEP ALLEN SALESMAN FEB TURNER SALESMAN SEP JAMES CLERK DEC WARD SALESMAN FEB FORD ANALYST DEC SMITH CLERK DEC SCOTT ANALYST DEC ADAMS CLERK JAN MILLER CLERK JAN EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 17-NOV BLAKE MANAGER MAY CLARK MANAGER JUN JONES MANAGER APR MARTIN SALESMAN SEP ALLEN SALESMAN FEB TURNER SALESMAN SEP JAMES CLERK DEC WARD SALESMAN FEB FORD ANALYST DEC SMITH CLERK DEC SCOTT ANALYST DEC ADAMS CLERK JAN MILLER CLERK JAN EMP Tabelle EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 17-NOV CLARK MANAGER JUN MILLER CLERK JAN JONES MANAGER APR SCOTT ANALYST DEC ADAMS CLERK JAN SMITH CLERK DEC FORD ANALYST DEC BLAKE MANAGER MAY MARTIN SALESMAN SEP ALLEN SALESMAN FEB TURNER SALESMAN SEP JAMES CLERK DEC WARD SALESMAN FEB EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO KING PRESIDENT 17-NOV CLARK MANAGER JUN MILLER CLERK JAN JONES MANAGER APR SCOTT ANALYST DEC ADAMS CLERK JAN SMITH CLERK DEC FORD ANALYST DEC BLAKE MANAGER MAY MARTIN SALESMAN SEP ALLEN SALESMAN FEB TURNER SALESMAN SEP JAMES CLERK DEC WARD SALESMAN FEB EMPNO ENAME JOB KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER CLERK EMPVU10 View EMPVU10 View
12-5 Warum Views? Um Datenbankzugriffe einzuschränken Um komplexe Queries zu vereinfachen Um Datenunabhängigkeit zu erlauben Um unterschiedliche Sichten der gleichen Daten darzustellen Um Datenbankzugriffe einzuschränken Um komplexe Queries zu vereinfachen Um Datenunabhängigkeit zu erlauben Um unterschiedliche Sichten der gleichen Daten darzustellen
12-6 Erzeugen einer View Einbettung einer Subquery innerhalb des CREATE VIEW Befehls. Die Subqueries kann komplexe SELECT Syntax enthalten. Kein ORDER BY in der Subquery. Einbettung einer Subquery innerhalb des CREATE VIEW Befehls. Die Subqueries kann komplexe SELECT Syntax enthalten. Kein ORDER BY in der Subquery. CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY] CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]
12-7 Erzeugen einer View Erzeuge eine View, EMPVU10, die alle Angestellten aus Abteilung 10 darstellt. Struktur der View anzeigen über SQL*Plus DESCRIBE Kommando. SQL> DESCRIBE empvu10 SQL> CREATE VIEW empvu10 2 AS SELECTempno, ename, job 3 FROMemp 4 WHEREdeptno = 10; View created.
12-8 Erzeugen einer View Erzeugen einer View mit Verwendung von Spalten-Aliasen in der Subquery. Auswahl der Spalten aus dieser View über die gegebenen Alias-Namen. Erzeugen einer View mit Verwendung von Spalten-Aliasen in der Subquery. Auswahl der Spalten aus dieser View über die gegebenen Alias-Namen. SQL> CREATE VIEW salvu30 2 AS SELECTempno EMPLOYEE_NUMBER, ename NAME, 3sal SALARY 4 FROMemp 5 WHEREdeptno = 30; View created.
12-9 Lesen von Daten über eine View EMPLOYEE_NUMBER NAME SALARY BLAKE MARTIN ALLEN TURNER JAMES WARD rows selected. EMPLOYEE_NUMBER NAME SALARY BLAKE MARTIN ALLEN TURNER JAMES WARD rows selected. SQL> SELECT * 2 FROMsalvu30;
12-10 Abfrage einer View USER_VIEWS USER_VIEWS EMPVU10 SELECTempno, ename, job FROMemp WHEREdeptno = 10; USER_VIEWS USER_VIEWS EMPVU10 SELECTempno, ename, job FROMemp WHEREdeptno = 10; SQL*Plus SELECT * FROM empvu10; EMP 7839KINGPRESIDENT 7782CLARKMANAGER 7934MILLERCLERK
12-11 Erzeugen einer komplexen View Erzeuge eine komplexe View, die Gruppen- funktionen enthält, um Werte aus zwei Tabellen anzuzeigen. SQL> CREATE VIEWdept_sum_vu 2 (name, minsal, maxsal, avgsal) 3 AS SELECTd.dname, MIN(e.sal), MAX(e.sal), 4AVG(e.sal) 5 FROMemp e, dept d 6 WHEREe.deptno = d.deptno 7 GROUP BY d.dname; View created.
12-12 Ausführungsregeln für DML- Operationen auf einer View DML-Änderungsoperationen auf ein- fachen Views ausführbar. Zeilen können nicht gelöscht werden, wenn die View folgendes enthält: – Gruppenfunktionen – GROUP BY Klausel – DISTINCT Schlüsselwort DML-Änderungsoperationen auf ein- fachen Views ausführbar. Zeilen können nicht gelöscht werden, wenn die View folgendes enthält: – Gruppenfunktionen – GROUP BY Klausel – DISTINCT Schlüsselwort
12-13 Ausführungsregeln für DML-Operationen auf einer View Daten einer Sicht können nicht geändert werden, wenn für die View folgendes gilt: – Eine der zuvor genannten Bedingungen. – Spalten, die durch Ausdrücke definiert sind Daten können nicht hinzugefügt werden, wenn gilt: – Eine der zuvor genannten Bedingungen. – Es gibt NOT NULL Spalten in der Basis- tabelle, die nicht durch die View angesprochen werden. Daten einer Sicht können nicht geändert werden, wenn für die View folgendes gilt: – Eine der zuvor genannten Bedingungen. – Spalten, die durch Ausdrücke definiert sind Daten können nicht hinzugefügt werden, wenn gilt: – Eine der zuvor genannten Bedingungen. – Es gibt NOT NULL Spalten in der Basis- tabelle, die nicht durch die View angesprochen werden.
12-14 Löschen einer View Das Löschen einer Sicht ohne Daten- verlust ist möglich, weil eine View auf den darunterliegenden Tabellen der Datenbank basiert. SQL> DROP VIEW empvu10; View dropped. DROP VIEW view;
12-15 Übungen Erzeugen einer einfachen View Erzeugen einer komplexen View Datenmodifikation über eine View Anzeige von View-Definitionen Löschen von Views Erzeugen einer einfachen View Erzeugen einer komplexen View Datenmodifikation über eine View Anzeige von View-Definitionen Löschen von Views
12-16
12-17