Sie sind auf Seite 1von 5

4/6/2017 What is SQL View in Oracle Database By Manish Sharma RebellionRider

What Is SQL View In Oracle Database
By Manish Sharma

SQL tutorial 60: SQL View in Oracle Database By Manish Sharma RebellionRider

Stats & Business intelligence ­ Diploma in Big Data Analytics
Upgrade your statistical & business intelligence skills through a diploma course Go to
imarticus.org/diploma/analytics_stats

What is SQL View In Oracle Database
SQL view is nothing but a logical table or a virtual table stored in a database. (http://ctt.ec/qad9c) We can also define a VIEW as a SELECT Statement with a name which
is stored in a database as though it were a table. All the DML commands which you can perform on a table can be performed on a view also.

Use of SQL View in Oracle Database 

Views in any database are majorly used for two reasons –  

1. Security
2. Reducing complexity of a query.

Security:
Using a view you can mask columns of a table and restrict any user to use the data from that column. For example,

Suppose you have a large table containing a mixture of both sensitive as well as general interest information. In this case it will be very handy for you to create a view
which only queries the general interest columns of the original table and in turn grants privileges on this view to the general users. In this case the population of general
users can query the view and have direct access only to the general information omitting the sensitive information present in the underlying table. Thus in this way views

can be used to give access to selective data in a table. 

Reducing the complexity of a query
http://www.rebellionrider.com/oracle­sql­concepts/what­is­sql­view­in­oracle­database.htm#.WOU_4vmGPIU 1/5
4/6/2017 What is SQL View in Oracle Database By Manish Sharma RebellionRider
Reducing the complexity of a query
Another reason for using a view is to reduce the complexity of a query which is made by joining various tables. For example,

A view built on a complex join can be created in order to include the complexity in the view itself. The result of this is a regular view object that looks to be a single table
which could be queried by you as any regular table. The view can be joined with other views and tables as well. Thus here in this way, view can be used to reduce the
complexity of a common Join. 

Stats & Business intelligence ­ Diploma in Big Data Analytics
Upgrade your statistical & business intelligence skills through a diploma course Go to
imarticus.org/diploma/analytics_stats

Syntax of SQL VIEW in Oracle Database
 CREATE VIEW  view_name  AS   
  SELECT  column_name(s)  FROM  table_name  WHERE condition;

This is a syntax of a very simple view which starts with the CREATE and VIEW keyword followed by the name of the View, you can assign any name of your desire to your
view. Next we have “AS” which is again an oracle reserved keyword and followed this we have our Select statement. 

Suggested Tutorial [Video]: How to retrieve data using SELECT DML statement in Oracle Database ()

Prerequisites
To create a view in your own schema, you must have the CREATE VIEW system privilege. To create a view in another user's schema, you must have the CREATE ANY
VIEW system privilege.

Create a Simple View
In this example I will create a view by the name of vw_rebellion on Employees table of HR schema. You can give whatever name you want to your view.  

 CREATE VIEW  vw_rebellion  AS  
  SELECT  first_name,  email,  phone_number  FROM  employees;

This is a very simple view created on “Employees” table of HR user and it will hold all the rows of First name, email and phone number column of the base table
employees. Once a view is created, it can be referred to in your select statement as if it were a table.

How to recreate a View (OR REPLACE)
We use OR REPLACE to recreate the definition of a view after creating it. Suppose in the above view vw_rebellion you realize that along with the first name column you
also wanted to have the last name column. There are two options to do this task either drop the view and recreate it or just recreate the view without dropping it. Let’s see
how 

 CREATE  OR REPLACE  VIEW  vw_rebellion  AS  
  SELECT  first_name,  last_name,  email,  phone_number  FROM  employees;

Apart from the OR REPLACE and the column LAST NAME nothing is different in the query. This query will replace the definition of old vw_rebellion view by the definition of
new vw_rebellion view. 

As I mentioned earlier that once you have created a view you can execute all the DML statements on that view as though it were a table. Let’s see how 

In­memory database ­ Real time OLTP database
Fast, Flexible, Reliable & Scalable Free evaluation & Excellent Support! Go to raima.com

How to check the definition of a SQL VIEW in Oracle Database (Describe/ desc dml)
You can use Describe/ DESC dml command to see the definition of your view e.g. 

DESC vw_rebellion;

I know “Describe” is a DDL statement not DML but I thought this tip is worth sharing.
http://www.rebellionrider.com/oracle­sql­concepts/what­is­sql­view­in­oracle­database.htm#.WOU_4vmGPIU 2/5
4/6/2017 What is SQL View in Oracle Database By Manish Sharma RebellionRider
I know “Describe” is a DDL statement not DML but I thought this tip is worth sharing.

How To retrieve Rows from a VIEW in Oracle Database (SELECT ddl)
You can use SELECT ddl command to retrieve rows from a VIEW similar to the way we do with tables in oracle database. 

SELECT * FROM vw_rebellion

You can also use ORDER BY clause to sort the result. 

SELECT * FROM vw_rebellion ORDER BY first_name;

Furthermore you can even use WHERE clause in your SELECT statement to filter the result.

SELECT * FROM vw_rebellion WHERE first_name = 'Nancy';

Info Byte: In case you want to use WHERE and ORDER BY clause in a single SELECT statement then always remember WHERE clause will come before the
ORDER BY clause in the query. For Example  

 SELECT  *  FROM  vw_rebellion   WHERE  first_name =  'Nancy'  ORDER BY  first_name;

In­memory database ­ Real time OLTP database
Fast, Flexible, Reliable & Scalable Free evaluation & Excellent Support! Go to raima.com

How to UPDATE rows in a VIEW (UPDATE ddl)
Similar to the SELECT ddl we can also execute UPDATE ddl on a VIEW. Suppose you want to update the email address of employee Nancy then query for this will be:  

UPDATE vw_rebellion SET email ='nancy@example.com' WHERE first_name ='Nancy';

How to delete rows in a VIEW (DELETE ddl)
You can execute DELETE DML command to delete one or more rows from the table using VIEWS. 

DELETE FROM vw_rebellion WHERE first_name = 'Nancy';

How to insert Row in a VIEW in Oracle Database (INSERT ddl)

To insert a row, a view has to satisfy all the constraints on any column of underlying table over which it’s created. Insert DML is subject to several restrictions when
executed on a View in Oracle database such as: 

1. A view must contain the entire Not Null column from underlying table. The failure to include any columns that have NOT NULL constraints from the underlying table
in the view will result the non­execution of the INSERT statement. However an UPDATE or DELETE statement can be issued.

2. If there is any column with referential key constraint in underlying table then view must contain that column and a proper value must be provided to that column
while performing Insert on the View and many more.

Thus to perform an INSERT dml on a view, it has to include all the columns which either have NOT NULL constraint or Referential constraint or any other mandatory
constraint from the base table employees.

E.g.

 INSERT  INTO  vw_superheroes  VALUES  ('Steve', 'Rogers', 654765);

Where vw_supereheroes is another view created over Superheroes table which has 5 columns first name, last name, and real name, Phone number and SSN. This table
http://www.rebellionrider.com/oracle­sql­concepts/what­is­sql­view­in­oracle­database.htm#.WOU_4vmGPIU 3/5
4/6/2017 What is SQL View in Oracle Database By Manish Sharma RebellionRider
Where vw_supereheroes is another view created over Superheroes table which has 5 columns first name, last name, and real name, Phone number and SSN. This table
has no constraint on any column.

Developer Pl/sql
Download PL/SQL Developer lots of features, plug­ins & more Go to
allroundautomations.com

How to create a complex view (View by joining two tables)
Complexity of a view depends upon the complexity of its SELECT statement. You can increase the complexity of a view by increasing the complexity of the SELECT
statement. 

 CREATE  OR  REPLACE  VIEW  vw_join  AS 

  SELECT  first_name,  department_name  FROM  employees emp

   FULL  OUTER  JOIN  departments dept

  ON  (emp.DEPARTMENT_ID = dept.DEPARTMENT_ID);

As I told you above that by using a View you can reduce the complexity of a query. A view built on a complex join can be created in order to include the complexity in the
view itself. The result of this is a regular view object that looks to be a single table which could be queried by you as any regular table. The view can be joined with other
views and tables as well. Thus here in this way, view can be used to reduce the complexity of a common Join. 

That’s all guys. Hope this blog helped you in understanding the concept of Views. Kindly do share it with your friends on social networking and help me reach out to more
people. Thanks & have a great day!

Developer Pl/sql
Download PL/SQL Developer lots of features, plug­ins & more Go to
allroundautomations.com

← Uninstall Oracle 12c (../oracle­database­12c­tutorial/how­to­uninstall­oracle­database­12c­rebellionrider.htm)

SQL Sequence → (what­is­sql­sequence­in­oracle­database­RebellionRider.htm)

SQL Script and Presentation used
You can DOWNLOAD SQL script and presentation used in the Video and in this article. 
SQL Script used in Video and in this article (https://copy.com/nt7ZnAsD4PqSHJZh) 

I have used copy cloud to share these resourses. You can also join copy cloud and get 15GB free cloud storage for lifetime. If you will use this referal link
https://copy.com?r=j7eYO7 (https://copy.com?r=j7eYO7) You will get 5GB extra free cloud storage means total 20GB free cloud storage.

Like 0 Tweet Share 51

 (https://www.facebook.com/imthebhardwaj)   (https://www.google.com/+Rebellionrider)   (http://www.linkedin.com/in/mannbhardwaj) 

(https://www.twitter.com/RebellionRider)   (https://www.youtube.com/user/TheCodeMakers)   (http://www.instagram.com/rebellionrider) 

(https://www.flickr.com/photos/rebellionrider)

http://www.rebellionrider.com/oracle­sql­concepts/what­is­sql­view­in­oracle­database.htm#.WOU_4vmGPIU 4/5
4/6/2017 What is SQL View in Oracle Database By Manish Sharma RebellionRider

http://www.rebellionrider.com/oracle­sql­concepts/what­is­sql­view­in­oracle­database.htm#.WOU_4vmGPIU 5/5

Das könnte Ihnen auch gefallen