sql学习总结(6)——索引和视图技术

索引是一种特殊类型的数据库对象,保存数据库表中一列或多列的排序结果,因此有效使用索引可以提高数据的查询效率;视图是从一张表或多张表或视图中导出的表(虚表),为查看和存取数据提供了另外一种方法。

索引优点:加速数据检索;加速连接、order by、group by;查询优化器依赖于索引起作用;强制实行的唯一性。

索引缺点:创建索引花费的时间和占用的存储空间;减慢数据修改的速度(每次修改都要维护索引)。

视图优点:简化操作;定制数据;合并分割数据;安全性。

视图缺点:性能不高(DBMS处理查询时,先将其转换对底层源表的查询);数据修改受限。

6.1创建索引

语法格式:

create [unique] [clustered] [nonclustered] index index_name on [table | view] ( column [asc | desc],...)  (默认为非簇索引,升序)

 

create unique clustered index pk_簇索引 on 职工备份(职工ID)

exec sp_helpindex 职工备份

其中,unique表示唯一索引,clustered指明索引为簇索引(主键),索引名为“pk_簇索引”,一个表只能有一个簇索引。

创建唯一索引

create unique nonclustered index ix_唯一索引 on 职工备份(职工号 asc)

创建普通索引

create index ix_普通索引 on 职工备份(工资 desc)

 

6.2编辑索引

删除普通索引语法结构:

drop index ‘表名.索引名 | 视图.索引名’,[,...n]    利用该语句可以同时删除多个普通索引

删除主键或唯一索引语法结构:

alter table 表名

drop constraint ‘主键|唯一索引名’

重命名索引

exec sp_rename ‘仓库备份.IX_仓库备份’,’modifyindex’,’index’

 

 

6.3创建视图

语法格式:

create view view_name as select_statement

 

create view db_sqlview6

as

select *,职工评语=

case

when 工资>2000 and 金额<1500 then ‘工资给多了’

when 工资<2000 and 金额>1500 then ‘工资给少了’

else

‘工资合理’

end

from db_sqlview4

6.4修改视图和删除视图

语法格式:

alter view view_name as select_statement

drop view view_name

 

6.5通过视图添加、更新和删除数据

只有来源于一张表的视图才可以添加、更新和删除数据,本质是其对应的数据库表,操作和表一样。

insert into db_myview(仓库号,城市,面积,创建时间) values(‘wh1’,’郑州’,888,’2008-8-8’)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。