Views

RahulGupta70 658 views 19 slides Sep 19, 2011
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

No description available for this slideshow.


Slide Content

VIEWS
Chapter 14

What is a view?
A VIRTUAL table in the database whose
contents are defined by a query
SQL query permanently stored in the database
with a name
To a user a view appears the same as a table
But unlike a real table,records of the view are
not stored in the database
The data in the view comes from the source
tables.

Creating a view
Create view V_emp_dept as select ename ,
dname from emp,dept where
emp.deptno=dept.deptno;
Once the view is defined it can be used in
select statement like a table
Select * from V_emp_dept ;

Advantages of Views
Security:Users to be given permission to
access db through views
Query simplicity
Structural simplicity
Dynamic nature:definition of view
unchanged when table updated
Data Integrity maintained

Disadvantages of Views
Performance issues
Update restrictions:not always possible to
update views

Types of views
Horizontal view
Vertical view
Row/Column subset view
Grouped view
Joined view

Horizontal view
Create view hvdept10 as select * from emp
where deptno=10;
Access to Only selected rows
Slices source table horizontally to create
view
All columns of source table are part of the
view

Vertical view
Create view vvemp
as select ename,sal,comm from emp;
Access to Only selected columns
Slices source table vertically to create
view
All rows of source table are part of the
view

Row/Column subset view
Create view rcemp as select
ename,sal,comm from emp
where deptno=10;
Access to selected columns and rows
Only the columns named in select list and
rows that meet search condition form part
of the view

Grouped View
Create view
gvemp(department,no_emp,total_sal,
avg_sal,max_sal,min_sal)
as select deptno,count(*),sum(sal),
avg(sal),max(sal),min(sal)
from emp
group by deptno;
Select * from gvemp;

Grouped View(contd.)
Select query has a group by clause
Produce one row for each group
Definition always includes a list of column
names
Do not have one to one correspondence
with source table rows
Summary of source table/tables
Cannot be updated

Joined View
Create view V_emp_dept as select ename ,
dname from emp,dept where
emp.deptno=dept.deptno;
Draws data from two or more tables
For the user ,querying becomes easy

Updating Views
Whenever updates are made through the
view the source table data is also updated
Views may be updateable or non
updateable
Generally views made with simple queries
are updateable

Restrictions on updating views
No distinct used in select
From clause must have one source table
Each select item a simple column name
Where clause should not have a sub
query
No group by or having clause

With Check Option
To prevent updation of rows which are not
visible through the view WITH CHECK
OPTION is used
SQL automatically checks each Insert and
update operation for the view to make
sure, resulting row meets search condition
in view definition

With Check Option(Example)
create view rcemp
as select ename,sal,comm
from emp where sal>1000
with check option;
View created
update rcemp set sal=800 where
ename='ALLEN';
ORA-01402: view WITH CHECK OPTION where-clause violation

Dropping a view
Drop view <view_name>;
Only view dropped not the source tables

Materialized views
When the query defining a view is complex the
dbms materializes the view
Saves results of query temporarily in a table
Discards the table when query is over
Materialized view-query run once,data saved
permanently,with every update to source table
corresponding changes to view

THANKS
Tags