一、视图概述
- 视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上
- 视图中并不存放数据,而是存放在视图所引用的原始表(基表)中
- 同一张原始表,根据不同用户的不同需求,可以创建不同的视图
?二、视图的特点与作用
- 着重特定数据:可以使用某些特定数据,过滤掉不需要的数据
- 简化数据操作:可将经常使用的联接、联合查询和选择查询定义成视图。用户在需要时,直接调用视图就可以了
- 自定义数据
- 组合分区数据:用户可把来自不同表的多个查询结果组合成单一的结果集,好像是单个表
- 安全性:用户通过视图访问数据,不授予用户直接访问表的权限
三、如何创建视图
使用企业管理器创建视图
使用脚本创建视图?
/* 创建视图语法:*/
GO
create view v_视图名称
as
select * from tb_表名;
/* 查看视图语法 */
select * from v_视图名称
/*删除视图语法*/
drop view v_视图名称;
四、视图和表的区别
- 视图是已经编译好的sql语句没有实际的物理记录,是虚表。而表有实际的物理记录,是实表。?
- 表是内容,视图是窗口?
- 表占用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改?
- 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。?
- 视图的建立和删除只影响视图本身,不影响对应的基本表。
五、案例
--要求用代码创建视图,要求得到如下数据:2012年一月入住的所有姓“张”的人
GO
create view view_demo2
as
select * from tb_dengji where YEAR(drz) = 2012 and
MONTH(drz) = 1 and uname like '郭%';
GO
--要求用代码创建视图,要求如下:要求所有房间的入住统计,如果为null的话则用0代替
GO
create view view_2
as
select fid ,isnull(fcnt,0) 'fcnt' from tb_kefang;
GO
六、索引
与书中的索引一样,数据库中的索引使用户可以快速找到表或索引视图中的特定信息。
索引的优点
- 创建唯一索引,保证数据库表中每一行数据的唯一性。
- 大大加快数据的检索速度,这也是创建索引的最主要原因。
- 加速表与表之间的链接,特别是在实现数据的参考完整性方面特别有意义。
- 在使用分组和排序子句进行数据检索时,同事可以减少查询中分组和排序的时间。
- 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。
索引的分类
七、索引操作
--创建索引
create index i_索引名称
on tb_表名称(字段名称);
--删除索引
drop index i_索引名称
on tb_表名称;
|