Views
Views
Views in SQL are kind of virtual tables. A view also has rows and columns as they are in
a real table in the database. We can create a view by selecting fields from one or more
tables present in the database. A View can either have all the rows of a table or specific
rows based on certain condition.
We can create View using CREATE VIEW statement. A View can be created from a
single table or multiple tables.
Syntax:
CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE condition;
Simple View
QUERY:
CREATE VIEW MyView AS SELECT * FROM EMP
QUERY:
SELECT * FROM MyView
OUTPUT:
EMP_NO E_NAME DEPT _NO
102 JAY ARORA 9384
99 HARSH ARORA 9385
201 ROHIT PATEL 9386
194 BUNNY ARORA 9388
142 SHREYAS 9389
OUTPUT:
EMP_NO E_NAME
102 JAY ARORA
142 SHREYAS
Creating View from multiple tables: In this example we will create a View named
MultiView from two tables EMP and DEPT. To create a View from multiple tables we
can simply include multiple tables in the SELECT statement.
QUERY:
CREATE OR REPLACE VIEW MultiView AS SELECT EMP.EMP_NO,
DEPT.DEPT_NO FROM EMP,DEPT WHERE EMP.DEPT_NO=DEPT.DEPT_NO
102 9384
194 9388
DELETING VIEWS
We have learned about creating a View, but what if a created View is not needed any
more? Obviously we will want to delete it. SQL allows us to delete an existing View. We
can delete or drop a View using the DROP statement.
Syntax:
DROP VIEW view_name;
Example
DROP VIEW MyView;
UPDATING VIEWS
There are certain conditions needed to be satisfied to update a view. If any one of these
conditions is not met, then we will not be allowed to update the view.
1. The SELECT statement which is used to create the view should not include
GROUP BY clause or ORDER BY clause.
2. The SELECT statement should not have the DISTINCT keyword.
3. The View should have all NOT NULL values.
4. The view should not be created using nested queries or complex queries.
5. The view should be create d from a single table. If the view is created
using multiple tables then we will not be allowed to update the view.
We can use the CREATE OR REPLACE VIEW statement to add or remove fields
from a view.
Syntax:
CREATE OR REPLACE VIEW view_name AS
SELECT column1,coulmn2,..FROM table_name WHERE condition;
Example
CREATE OR REPLACE VIEW MultiView AS SELECT EMP.EMP_NO,
DEPT.DEPT_NO FROM EMP,DEPT WHERE EMP.DEPT_NO=DEPT.DEPT_NO
Uses of a View :
A good database should contain views due to the given reasons:
1. Restricting data access –
Views provide an additional level of table security by restricting access to a
predetermined set of rows and columns of a table.
2. Hiding data complexity –
A view can hide the complexity that exists in a multiple table join.
3. Simplify commands for the user –
Views allows the user to select information from multiple tables without requiring
the users to actually know how to perform a join.
4. Store complex queries –
Views can be used to store complex queries.
5. Rename Columns –
Views can also be used to rename the columns without affecting the base tables
provided the number of columns in view must match the number of columns
specified in select statement. Thus, renaming helps to hide the names of the
columns of the base tables.
6. Multiple view facility –
Different views can be created on the same table for different users.
A View in SQL as a logical subset of data from one or more tables. Views are used to
restrict data access. A View contains no data of its own but its like window through
which data from tables can be viewed or changed. The table on which a View is based
are called BASE Tables.
There are 2 types of Views in SQL: Simple View and Complex View. Simple views can
only contain a single base table. Complex views can be constructed on more than one
base table. In particular, complex views can contain: join conditions, a group by clause,
a order by clause.
The key differences between these types of Views are:
Contains only one single base table or is created Contains more than one base tables or is
from only one table. created from more than one tables.
DML operations could be performed through a DML operations could not always be
simple view. performed through a complex view.
INSERT, DELETE and UPDATE are directly We cannot apply INSERT, DELETE and
possible on a simple view. UPDATE on complex view directly.
Simple view does not contain group by, distinct, It can contain group by, distinct,
pseudocolumn like rownum, columns defiend by pseudocolumn like rownum, columns
expressions. defiend by expressions.