What is a VIEW in SQL Server
In SQL, a view is a virtual table based on the result-set of an SQL statement.
A view can be defined as nothing more than a SQL statement that is stored in the database with an associated name. A view is actually a composition of a table in the form of a predefined SQL query.
A view can contain all rows of a table or select rows from a table. A view can be created from one or many tables which depends on the written SQL query to create a view.
Views, which are kind of virtual tables, allow users to do the following:
You can add SQL functions, WHERE, and JOIN statements to a View and present the data Only if the data were coming from one single table.
Creating a View
Syntax :
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name
WHERE Condition
Note:
A view always shows up-to-date data! The database engine recreates the data, using the view's SQL statement, every time a user queries a view.
Examples:
If you have the Northwind database you can see that it has several views installed by default.
The view "Current Product List" lists all active products (products that are not discontinued) from the "Products" table. The view is created with the following SQL Statement:
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName
FROM Products WHERE Discontinued=No
We can query the view above as follows:
SELECT * FROM [Current Product List]
Another view in the Northwind sample database selects every product in the "Products" table with a unit price higher than the average unit price:
CREATE VIEW [Products Above Average Price] AS SELECT ProductName,UnitPrice
FROM Products WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
We can query the view above as follows:
SELECT * FROM [Products Above Average Price]
Another view in the Northwind database calculates the total sale for each category in 2010. Note that this view selects its data from another view called "Product Sales for 2010":
CREATE VIEW [Category Sales For 2010] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 2010] GROUP BY CategoryName
We can query the view above as follows:
SELECT * FROM [Category Sales For 2010]
We can also add a condition to the query. Now we want to see the total sale only for the category "Beverages":
SELECT * FROM [Category Sales For 2010] WHERE CategoryName='Beverages'
Altering a View:
Syntax :
ALTER VIEW view_name AS SELECT column_name(s)
FROM table_name WHERE condition
Now we want to add the "Category" column to the "Current Product List" view. We will Alter the view with the following SQL:
ALTER VIEW [Current Product List] AS SELECT ProductID,ProductName,Category
FROM Products WHERE Discontinued=No
Droping a View :
You need a way to drop the view if it is no longer needed. The syntax is very simple as given below:
Drop View View_Name
Thanks, Tamatam
In SQL, a view is a virtual table based on the result-set of an SQL statement.
A view can be defined as nothing more than a SQL statement that is stored in the database with an associated name. A view is actually a composition of a table in the form of a predefined SQL query.
A view can contain all rows of a table or select rows from a table. A view can be created from one or many tables which depends on the written SQL query to create a view.
Views, which are kind of virtual tables, allow users to do the following:
- Structure data in a way that users or classes of users find natural or intuitive.
- Restrict access to the data such that a user can see and (sometimes) modify exactly what they need and no more.
- Summarize data from various tables which can be used to generate reports.
You can add SQL functions, WHERE, and JOIN statements to a View and present the data Only if the data were coming from one single table.
Creating a View
Syntax :
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name
WHERE Condition
Note:
A view always shows up-to-date data! The database engine recreates the data, using the view's SQL statement, every time a user queries a view.
Examples:
If you have the Northwind database you can see that it has several views installed by default.
The view "Current Product List" lists all active products (products that are not discontinued) from the "Products" table. The view is created with the following SQL Statement:
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName
FROM Products WHERE Discontinued=No
We can query the view above as follows:
SELECT * FROM [Current Product List]
Another view in the Northwind sample database selects every product in the "Products" table with a unit price higher than the average unit price:
CREATE VIEW [Products Above Average Price] AS SELECT ProductName,UnitPrice
FROM Products WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
We can query the view above as follows:
SELECT * FROM [Products Above Average Price]
Another view in the Northwind database calculates the total sale for each category in 2010. Note that this view selects its data from another view called "Product Sales for 2010":
CREATE VIEW [Category Sales For 2010] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 2010] GROUP BY CategoryName
We can query the view above as follows:
SELECT * FROM [Category Sales For 2010]
We can also add a condition to the query. Now we want to see the total sale only for the category "Beverages":
SELECT * FROM [Category Sales For 2010] WHERE CategoryName='Beverages'
Altering a View:
Syntax :
ALTER VIEW view_name AS SELECT column_name(s)
FROM table_name WHERE condition
Now we want to add the "Category" column to the "Current Product List" view. We will Alter the view with the following SQL:
ALTER VIEW [Current Product List] AS SELECT ProductID,ProductName,Category
FROM Products WHERE Discontinued=No
Droping a View :
You need a way to drop the view if it is no longer needed. The syntax is very simple as given below:
Drop View View_Name
Thanks, Tamatam
No comments:
Post a Comment
Hi User, Thank You for visiting My Blog. Please post your genuine Feedback or comments only related to this Blog Posts. Please do not post any Spam comments or Advertising kind of comments which will be Ignored.