数据库-视图-索引-触发器
一、视图
视图一张虚表,它是来自一张表或是几张表,当然也可以来自其它的视图,而导出的一张虚表,其列为虚列;视图的数据随着关联的表的数据改变而变化。
在RDBMS中,创建的视图并不会执行其select语句,而只是把其定义存放在数据字典中,我们可以通过select * from SYS.Views 来查看视图是什么时候的,如下:
select * from SYS.Views
还可以通过:select * from SYS.OBJECTS where type='V' 来查看
当我们对视图进行查询时,则执行视图,从表读取数据;视图的创建create view vw_whc as select语句,删出用drop view vw_whc,视图的更新是通过更新表而更新视图
使用视图的作用:
1)、视图能够简化用户的操作,2)、能以多角度看数据,3)、更清晰的查询数据,4)、避免了多次查询数据表
二、索引
创立索引是加快查询速度的有效方式,在查询时可以减不I/O的需求,索引有聚集索引和非聚集索引
1、聚集索引:每一个表上只能有一个聚集索引,如主键,数据的在储存时,按照聚集索引的逻辑顺序存储,使用了一个双向链表的方式
2、非聚集索引:在一个表上可以创立多个非聚集索引,其是用一个指针来指向其数据的存储
索引的建立会在查询时改表其查询语句的执行计划,从而提高了查询速度,如下:
(1)、创建索引:create index ix_whc on whc(DemoName)
一般的查询(不带索引):select * from whc
索引查找:select * from whc with(index=ix_whc)
在大数据量时,建立索引对于提交性能非常的重要。
三、触发器
触发器是用户定义在关系表上的一类由事件驱动的特殊过程,定义后,对表的操作会自动调用执行它,建立触发器create trigger tr_whc on whc for insert as 加上我们要做的处理
如:
create trigger tr_whc on whc for insert as begin select * from inserted print 'this is trigger' end
创建了一个触发器,在插入时进行触发,插入时,有一张临时表inserted,在delete时也有一张临时表deleted,得到我们插入的数据,并打一印一句话,测试如下:
insert into whc(DemoName,Mark) values('Name2','Mark2')
删出触发器drop trigger tr_whc
最后说明一下就是,小弟初学者,那里有不对的,或理解不到位的,还请大家指出,感激不尽!!!!