索引
1)作用
方便快速查询
2)分类
a)聚集性索引(clustered index),包括主键索引以及普通聚集索引,表中行的物理顺序是聚集索引的字段顺序,比如首字母目录
b)非聚集性索引(nonclustered index),索引顺序与数据的物理顺序无关,数据存储在一个地方,索引存储在另外一个地方,索引中带有指向数据存储位置的指针,比如笔画目录
c)唯一性索引(unique index),包括唯一聚集索引只能建立一个,或者唯一非聚集索引可建立多个
聚集索引每个表只有一个
非聚集索引每个表可以有多个
在创建非聚集索引之前创建聚集索引
建立主键约束的时候会自动建立主键索引
建立唯一性约束的时候会自动建立唯一性索引
聚集索引应建立在频繁查询的属性列上,但是此列不应该被频繁更新
3)图形化界面/T-sql语句
建立
方法1图形化界面
1)表-【索引】-【新建索引】
2)表设计器-【索引/键】
方法2T-sql
create unique clustered/nonclusterd index index_name on table(column asc/desc) 单字段
create unique clustered/nonclusterd index index_name on table(column1 asc/desc,column2 asc/desc)组合字段即复合
默认建立非聚集索引
默认是升序排列
查看
1)查看表中索引
方法1图形界面:【表】-【索引】
方法2:
exec sp_helpindex 表名
2)查看表中索统计信息
方法1图形界面:【表】-【统计信息】-【索引】-【属性】
方法2:
ddbc show_statistics (表名,索引名)
3)查看数据库中索引信息
【某数据库(右键)】-【报表】-【标准报表】-【索引相关报表】
使用
select age from student with(index=index_age)
删除
drop index index_name on table
或者
drop index table.index_name
附:
- 教材中关于唯一索引的定义错误-2019
- fillfactor的设置可或不可都可
视图
1作用
方便交互对话
用户权限设定
内模式-物理
模式-数据库
外模式-视图
视图是虚表
2建立
方法1视图设计器
数据库-【视图】-【新建视图】
方法2:T-SQL
create view view_name[(列名)]
as
select ****
列名可以全部省略或者全不省略
- 聚集函数需要指定新列名
- 多表查询有二义的列
3使用
select * from view_name
4删除
drop view view_name
5修改
alter view view_name
as
select ***
6判断视图是否存在或同名视图
if exists(select * from sys.objects where name=‘view_name’)
drop view view_name