PL-SQL
What is PL/SQL? Full Form, Architecture of PL/SQL Developer
What is PL/SQL? Oracle PL/SQL is an extension of SQL language that combines the data manipulation power...
VIEWS are virtual tables that do not store any data of their own but display data stored in other tables. In other words, VIEWS are nothing but SQL Queries. A view can contain all or a few rows from a table. A MySQL view can show data from one table or many tables.
Let's now look at the basic syntax used to create a view in MySQL.
CREATE VIEW `view_name` AS SELECT statement;
WHERE
Let's now create our first view using the "myflixdb" we will create a simple view that restricts the columns seen in the members table.
Suppose authorization requirements state that the accounts department can only see member's number , name and gender from the member's table. To achieve this you can create a VIEW -
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Executing the above script in MySQL workbench against the myflixdb and expanding the views node in the database explorer gives us the following results.
Note the accounts_v_members object is now visible in the database views objects. Let's now execute a SELECT statement that selects all the fields from the view.
SELECT * FROM `accounts_v_members`;
Executing the above script in MySQL workbench against myflixdb gives us the following results shown below.
membership_number full_names gender 1 Janet Jones Female 2 Janet Smith Jones Female 3 Robert Phil Male 4 Gloria Williams Female 5 Leonard Hofstadter Male 6 Sheldon Cooper Male 7 Rajesh Koothrappali Male 8 Leslie Winkle Male 9 Howard Wolowitz Male
Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden .
If we want to see the SQL statements that make up a particular view, we can use the script shown below to do that.
SHOW CREATE VIEW `accounts_v_members`;
Executing the above script gives you the view name and the SQL SELECT statements used to create the view.
Let's now look at a fairly complex example which involves multiple tables and uses joins.
We will package the JOIN created that gets information from three (3) tables namely members, movies and movie rentals. Below is the script that helps us to achieve that.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
Executing the above scripts creates the view named general_v_movie_rentals in our myflixdb
Let's now select all the fields from a table named general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Executing the above script in MySQL workbench against the myflixdb gives us the following results shown below.
membership_number full_names title transaction_date return_date 1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012 1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012 3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012 2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012 3 Robert Phil X-Men 23-06-2012 28-06-2012
Note we didn't have to write the complex JOIN query to get information about members, movies and movie rental details. We simply used the view in a regular SELECT statement as any other ordinary table. The view can be called from anywhere in the application system running on top of the myflixdb.
The DROP command can be used to delete a view from the database that is no longer required. The basic syntax to drop a view is as follows.
DROP VIEW ` general_v_movie_rentals `;
Why use views?
You may want to use views primarily for following 3 reasons
What is PL/SQL? Oracle PL/SQL is an extension of SQL language that combines the data manipulation power...
What is SQL? SQL is the standard language for dealing with Relational Databases. SQL can be used...
$20.20 $9.99 for today 4.5 (108 ratings) Key Highlights of PL/SQL Tutorial PDF 188+ pages eBook...
What is Nested Blocks Oracle? In PL/SQL, each block can be nested into another block. They are...
What is CURSOR in PL/SQL? A Cursor is a pointer to this context area. Oracle creates context area...
What is SQLite? SQLite is an open-source, embedded, relational database management system,...