Sql Server 视图数据的增删改查教程
一、视图的基本概念 视图是用于查询的另外一种方式。 与实际的表不同,它是一个虚表;因此数据库中只存在视图的定义,而不存在视图中相对应的数据,数据仍然存放在原来的基本表中。视图是一种逻辑对象。 二、 视图能做什么 导出数据; 在导出数据时,常常需要多个表联合查询,这个时候就可以使用视图;转换字段,如把status(0/1 Int类型)字段转换成启用/停用(文字) ,然后用视图保存定义。 数据安全,可以给视图加密。 三、视图操作 3.1 查询数据 (一)准备素材:
使用两张表,其中一张是家电表,另外一张字典表(只需要知道这两张表有一个连接字段brandID-RowID:注意两个表没有强制使用外键约束),准备好素材 1 2 3 4 5 6 7 8 9 10 11 SELECT TOP 1000 [appliancesName] ,[appliancesType] ,[code] ,[**brandId**] ,[standard] ,[appliancesStatus] ,[appliancesIsNew] ,[appliancesIsKey] ,[appliancesRemark] ,[appliancesId] FROM sfa_t_appliances 另外一张表字典表 1 2 3 4 5 6 SELECT TOP 1000 [**RowID**] ,[PRowID] ,[DicKey] ,[DicVal] ,[Status] FROM sfa_t_TSysDictionary 说明:sfa_t_appliances 表中的字段brandId 与 sfa_t_TSysDictionary表中的rowid做关联。 (二)创建视图:
第 1 页 共 7 页
1 2 3 4 5 create view appliances_view(id,name,brandName) as select s.appliancesId,s.appliancesName,d.DicVal from sfa_t_appliances s,sfa_t_TSysDictionary d where s.brandId = d.RowID (三)查询:
查询数据,可以将视图看做一张实实在在的数据表,能够执行各种查询操作。 如下图所示,执行一个查询操作:
(四)备注
第 2 页 共 7 页
有些书上说:可以对任何查询结果进行排序,但是只有当视图包括Top子句时才能排序视图。这样看来书上确实是有问题的。动手实践出真知 3.2 插入数据 实验一
往视图中插入一条数据:
解释:
往视图中插入数据时,能够往sfa_t_appliances 中插入数据。但是视图为什么读取不到呢? 1 2 3 4 5 create view appliances_view(id,name,brandName) as select s.appliancesId,s.appliancesName,d.DicVal from sfa_t_appliances s,sfa_t_TSysDictionary d where s.brandId = d.RowID 注意视图的创建语法:是通过关联关系获取到的数据。注意观看视图的三个字段的来源。自然,在appliancesID为112233的记录中没有brandID,所以自然不能读取到数据。 实验二
第 3 页 共 7 页