SQL 10 Views
SQL 10 Views
Creating Views
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 1
Objectives
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 2
What Is a View?
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 3
What Is a View?
EMP Table
EMPNO
EMPNO ENAME
ENAME JOBJOB
JOB MGR
MGR HIREDATE
HIREDATE SAL
SAL COMM
SAL COMM DEPTNO
COMM DEPTNO
DEPTNO
-----
----- --------
-------
------- ---------
--------------
--------- ---- ---------
----- --------- ------
-----
----- -----
------------
----- -------
-------
7839
7839
7839 KING
KING PRESIDENT
PRESIDENT
PRESIDENT 17-NOV-81
17-NOV-81 5000
5000
5000 10
10
10
7782
7698
7698 CLARK
BLAKE
BLAKE MANAGER
MANAGER
MANAGER 7839
7839 09-JUN-81
01-MAY-81
01-MAY-81 2850
1500
2850 300 30
10
30
7934
7782
7782 MILLER
CLARK
CLARK MANAGER
CLERK
MANAGER 7782
7839
7839 23-JAN-82
09-JUN-81
09-JUN-81 2450
1300
2450 10
10
10
7566
7566
7566 JONES
JONES MANAGER
MANAGER
MANAGER 7839
7839 02-APR-81
02-APR-81 2975
2975
2975 20
20
20
EMPVU10
7788
7654 ViewSALESMAN
7654 SCOTT
MARTIN
MARTIN ANALYST
SALESMAN 7566
7698
7698 09-DEC-82
28-SEP-81
28-SEP-81 1250
3000 1400
1250 1400 30
20
30
EMPNO 7876
7499
7499 ADAMS
ENAME ALLEN
ALLEN SALESMAN
CLERK
JOB
SALESMAN 7788
7698
7698 12-JAN-83
20-FEB-81
20-FEB-81 1600
1100 300
1600 300 30
20
30
------ --------
7369
7844 SMITH
TURNER -----------
SALESMAN
CLERK
7844 TURNER SALESMAN 7902
7698 17-DEC-80
08-SEP-81
7698 08-SEP-81 1500
800
1500 00 30
20
30
7900
7900 JAMES
JAMES CLERK 7698
7698 03-DEC-81 950 30
7839 7521
KING PRESIDENT
CLERK 03-DEC-81 950 30
7521 WARD
WARD SALESMAN
SALESMAN 7698
7698 22-FEB-81
22-FEB-81 1250
1250 500
500 30
30
7782 7902
CLARK
7902 FORD
FORD MANAGER
ANALYST
ANALYST 7566
7566 03-DEC-81
03-DEC-81 3000
3000 20
20
7934 MILLER
7369 SMITH
7369 SMITH CLERK7902 17-DEC-80
CLERK
CLERK 7902 17-DEC-80 800
800 20
20
7788
7788 SCOTT
SCOTT ANALYST
ANALYST 7566
7566 09-DEC-82
09-DEC-82 3000
3000 20
20
7876
7876 ADAMS
ADAMS CLERK
CLERK 7788
7788 12-JAN-83
12-JAN-83 1100
1100 20
20
7934
7934 MILLER
MILLER CLERK
CLERK 7782
7782 23-JAN-82
23-JAN-82 1300
1300 10
10
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 4
Why Use Views?
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 5
Creating a View
– You embed a subquery within the CREATE VIEW statement.
CREATE
CREATE [OR
[OR REPLACE]
REPLACE] VIEW
VIEW view
view
[(alias[,
[(alias[, alias]...)]
alias]...)]
AS
AS subquery
subquery
[WITH
[WITH CHECK
CHECK OPTION]
OPTION]
[WITH
[WITH READ
READ ONLY]
ONLY]
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 6
Creating a View
– Create a view, EMPVU10, that contains details of
employees in department 10.
SQL> CREATE VIEW empvu10
2 AS SELECT empno, ename, job
3 FROM emp
4 WHERE deptno = 10;
View created.
SQL>
SQL> DESCRIBE
DESCRIBE empvu10
empvu10
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 7
Creating a View
– Create a view by using column aliases in the
subquery.
SQL> CREATE VIEW salvu30
2 AS SELECT empno EMPLOYEE_NUMBER, ename NAME,
3 sal SALARY
4 FROM emp
5 WHERE deptno = 30;
View created.
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 8
Retrieving Data from a View
SQL> SELECT *
2 FROM salvu30;
EMPLOYEE_NUMBER
EMPLOYEE_NUMBER NAME
NAME SALARY
SALARY
---------------
--------------- ----------
---------- ---------
---------
7698
7698 BLAKE
BLAKE 2850
2850
7654
7654 MARTIN
MARTIN 1250
1250
7499
7499 ALLEN
ALLEN 1600
1600
7844
7844 TURNER
TURNER 1500
1500
7900
7900 JAMES
JAMES 950
950
7521
7521 WARD
WARD 1250
1250
66 rows
rows selected.
selected.
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 9
Querying a View
SQL*Plus
USER_VIEWS
USER_VIEWS
SELECT *
EMPVU10
EMPVU10
FROM empvu10;
SELECT
SELECT empno,
empno, ename,
ename, job
job
FROM
FROM emp
emp
WHERE
WHERE deptno
deptno == 10;
10;
7839 KING PRESIDENT
7782 CLARK MANAGER EMP
7934 MILLER CLERK
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 10
Modifying a View
– Modify the EMPVU10 view by using CREATE OR
REPLACE VIEW clause. Add an alias for each
column name.
SQL> CREATE OR REPLACE VIEW empvu10
2 (employee_number, employee_name, job_title)
3 AS SELECT empno, ename, job
4 FROM emp
5 WHERE deptno = 10;
View created.
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 11
Simple Views
and Complex Views
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 12
Creating a Complex View
• Create a complex view that contains group functions
to display values from two tables.
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 13
Rules for Performing
DML Operations on a View
– You can perform DML operations on simple views.
– You cannot remove a row if the view contains the
following:
• Group functions
• A GROUP BY clause
• The DISTINCT keyword
– You cannot add data if:
• There are NOT NULL columns in the base tables
that are not selected by the view
• Columns defined by expressions
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 14
Using the WITH CHECK OPTION Clause
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 15
Denying DML Operations
– You can ensure that no DML operations occur
by adding the WITH READ ONLY option to
your view definition.
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 16
Removing a View
DROP
DROP VIEW
VIEW view;
view;
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 17
Quiz(Tuesday 08-dec-2020)
• Subquery, joins, union, intersect etc
© 2009 Punjab University College of Information Technology (PUCIT) September 8, 2009 Slide 18