In SQL, views contain rows and columns similar to a table, however, views don't hold the actual data.
You can think of a view as a virtual table environment that's created from one or more tables so that it's easier to work with data.
Creating a View in SQL
We can create views in SQL by using the CREATE VIEW
command. For example,
CREATE VIEW us_customers AS
SELECT customer_id, first_name
FROM Customers
WHERE Country = 'USA';
Here, a view named us_customers is created from the customers table.
Now to select the customers who lives in USA, we can simply run,
SELECT *
FROM us_customers;
Updating a View
It's possible to change or update an existing view using the CREATE OR REPLACE VIEW
command. For example,
CREATE OR REPLACE VIEW us_customers AS
SELECT *
FROM Customers
WHERE Country = 'USA';
Here, the us_customers view is updated to show all the fields.
Deleting a View
We can delete views using the DROP VIEW
command. For example,
DROP VIEW us_customers;
Here, the SQL command deletes the view named us_customers.
Note: If the view is not available, the above command throws an error.
Views for Complex Queries
Suppose A and B are two tables and we wan't to select data from both of the tables. For that, we have to use SQL JOINS.
However using the JOIN
each time could be a tedious task. For that, we can create a view to fetch records easily.
Let's create a view,
CREATE VIEW order_details AS
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
JOIN Orders
ON Customers.customer_id = Orders.customer_id;
Now, to select the data, we can run
SELECT *
FROM order_details;
Here, the SQL command selects data from the view order_details.