sql之视图的作用

什么是视图?

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

视图是存储在数据库中的查询的sql 语句,您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

视图只供查询,数据不可更改,视图中的字段就是来自一个或多个数据库中的真实的表中的字段。将多个数据表中的字段组合成一个“虚拟表”,查询其字段时可直接select * from 视图名。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

视图的使用场景

视图的出现主要基于两个原因:安全原因,视图可以隐藏一些数据,仅显示需要查询的字段,另一原因是简化sql,可使复杂的中间表关联查询更易于使用和展示。

创建视图语法

CREATE VIEW view_name视图名称 AS
SELECT column_name(s)
FROM table_name
WHERE condition

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

示例:
测试表:usera有id,name,age字段
测试表:userb有id,name,sex字段
如果直接使用sql语句:select * from user;那就会提示该表不存在,这时该如何解决呢?答案:创建视图。以下sql语句创建视图:

create view user as select a.name,a.age,b.sex from usera as a, userb as b where a.name=b.name;

以上假设name都是唯一的。此时使用sql语句:select * from user;就不会报错。

更新视图语法

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

现在,我们希望向 “Current Product List” 视图添加 “Category” 列。我们将通过下列 SQL 更新视图:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No
注意:如果视图中包含对其采用的表的字段值进行了另外的计算,或属性的性质不相同,则无法对视图进行更改,这是一种视图机制。

删除视图语法

DROP VIEW view_name

视图删除后视图的定义将从数据字典中删除,如果在该视图上还导出了其他视图,删除这些视图需要级联删除,遗憾的是,SQL Server2008并不支持级联删除,不过可以先删除子视图,然后再删除母视图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值