SQL Server学习进程(十)---视图
1.视图
数据库中的视图时一个虚拟表。同真实的表一样,视图包括一系列带有名称的行和列数据。行和列数据用来*定义视图的查询所用的表,并且在引用视图时动态生成。视图可以由一个或多个表或视图导出。
视图一经定义变存储在数据库中,与相对应的数据并没有像表那样在数据库中在存储一份,通过视图看到的数据只是存放在基本表中的数据。二者动态绑定,当对其中一种的数据进行修改时另一个也跟着变化。
视图的分类:
(1)标准视图
(2)索引视图
(3)分区视图
视图的优点和作用
(1)简单化
(2)安全性
(3)逻辑数据独立性
2. 创建视图
2.1使用视图设计器创建视图
视图-》新建视图-》
选择一个或多个表或视图(Ctrl可多选)-》添加-》关闭-》(菜单栏)-》保存
2.2T-SQL语句创建视图
CREATE VIEW [ schema_name. ]view_name [column_list]
[WITH <ENCRYPTION | SCHEMABINDING | VIEW_METADATA> ]
AS select_statement
[ WITH CHECK OPTION ]
视图定义的SELECT子句不能包括下列内容
(1)COMPUTE 或 COMPUTE BY 子句
(2)ORDER BY 子句,除非在SELECT 语句的选择列表中也有一个TOP子句。
(3) INTO 关键字。
(4) OPTION 子句
(5) 引用临时表或表变量
create view view_demo(编号,姓名,年龄,食物,饲养员)
as
select a.ID,a.Name,a.Age,b.name,b.operator
from animals a inner join fruits bon a.Food=b.id
--另一种写法
create view view_demo1(编号,姓名,年龄,食物,饲养员)
as
select a.ID,a.Name,a.Age,b.name,b.operatorfrom animals a ,fruits b where a.Food=b.id
3.修改视图
3.1在SMSS中,选中目标视图-》(右击)-》设计;
出现界面和创建是一样,根据需求修改。
3.2当拥有使用视图权限的前提下,使用ALTER VIEW语句。ALTER VIEW 语句与 CREATE VIEW 语句用法一样。
4.查看视图信息
4.1在SSMS中,选中目标视图-》(右击)-》属性
4.2 Exec sp_help view_nameE;
EXEC sp_helpext view_name;
5.使用视图修改数据
修改试图时的注意事项:
(1)修改视图中的数据时,不能同时修改2个或多个基本表
(2)不能修改图中通过计算得到的字段,例如包含算术表达式或者聚合函数的字段。
(3)执行UPDATE或DELETE命令时,无法用DELETE命令删除数据,若使用UPDATE命令则应当与INSERT命令一样,被更新的列必须属于同一个表。
INSERT INTO view_name VALUES(column,column1,column2...n);
UPDATE view_name
SET column=value,column1=value1,...n WHERE condition
DELETE view_name WHERE condition
6.删除视图
6.1直接在SMSS中删除视图
6.2 DROP VIEW view_name,view_name1,view_name2,....view_namen;