一、索引
1、索引是数据表中数据和相应存储位置的列表
2、利用索引可以提高在表或试图中查找数据的速度
索引主要分为:
聚集索引
非聚集索引
聚集索引:聚集索引是指表中数据行的物理存储顺序与索引顺序完全相同
非聚集索引:非聚集索引不改变表中数据行的物理存储位置,数据与索引分开存储,通过索引指向的地址与表中的数据发生关系
每个表中只允许有一个聚集索引,最多可以有249个非聚集索引
聚集索引用于经常查找的数据的列,非聚集索引用于查找单个值的列
表中有主键会自动生成聚集索引
判断是否存在索引index_name,如果存在则删除
if exists(select * from sys.indexes where name='index_name')
drop index index_name
创建索引:
create [unique] [clustered/nonclustered]
index index_name
on table_name(列_name)
[with fillfactor=x]
fillfactor 填充因子:指定1-100之间的值,表示索引页填充的百分比
删除索引:
drop index table_name.index_name
使用索引:
select * from stuinfo with(index=index_name) where...
二、视图
视图是一张虚拟表,
视图中并不存放数据,存储的是查询语句
定义视图的查询不能包含 compute,compute by,into
定义视图的查询不能包含order by,除非在select 语句的选择列表中还有一个top
判断是否存在试图view_name,如果存在则删除
if exists(select * from sys.views where name='view_name')
drop view view_name
定义视图:
create view view_name[列名,...]
with encryption
as
select 查询语句
go
使用视图:同表的使用方法一致
select * from view_name
视图加密防止信息泄漏,避免他人恶意破坏