Ujezo wa VIEW (Muonekano) kwa SQL

视图是可视化的表。

本章讲解如何创建、更新和删除视图。

SQL CREATE VIEW 语句

什么是视图?

在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。

注释:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。

SQL CREATE VIEW 语法

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

SQL CREATE VIEW 实例

可以从某个查询内部、某个存储过程内部,或者从另一个视图内部来使用视图。通过向视图添加函数、join 等等,我们可以向用户精确地提交我们希望提交的数据。

Makini ya Northwind Database ina matokeo mbalimbali yenye uwanja wa kufikia wa msingi. Matokeo "Current Product List" inatokana na tablica ya Products na inaonyesha matumizi ya kila bidhaa. Matokeo hii inatokana na SQL iliyotengenezwa kama inayofuata:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

Tunaweza kutafuta matokeo hii hii:

SELECT * FROM [Current Product List]

Makini mengine ya Northwind Database inayotaka kichwa kimeanza kufikia matumizi ya kila bidhaa yenye ukurabu wa kipimo cha kipato kimecuwa kwenye tablica ya Products:

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

我们可以像这样查询上面这个视图:

SELECT * FROM [Products Above Average Price]

Makini ya Northwind Database inayotaka kichwa kimeanza kuandaa uadilifu wa kipimo cha kila spesi katika mwaka wa 1997. Tukijua, matokeo hii ya kufikia data kimekaa kwenye matokeo mengine yenye jina "Product Sales for 1997":

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName 

我们可以像这样查询上面这个视图:

SELECT * FROM [Category Sales For 1997]

我们也可以向查询添加条件。现在,我们仅仅需要查看 "Beverages" 类的全部销量:

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

Kuingiza vizuia ya SQL

Unaweza kutumia mbinu inayofuata kuongeza vizuia:

Inayokusudiwa ya SQL Tengeneza AU Mbinga VIEW
Tengeneza AU Mbinga VIEW view_name AS
SELECT jina la kikati
FROM jina la tablica
WHERE kipenyo cha kishahara

Sasa, tunatua kuongeza koma vizuia ya "Current Product List" kikati ya "Category". Tunatumia SQL yenye uharibifu wa vizuia:

Tengeneza VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

Kutengeneza vizuia ya SQL

Unaweza kutumia amri ya DROP VIEW kuondoa vizuia.

Inayokusudiwa ya SQL DROP VIEW

DROP VIEW view_name