一,索引
索引是一个独立的,物理的数据库结构,可以快速找到表或视图的信息
通常情况下只有需要经常查询索引列中的数据时才在表上创建索引
基本语法:
CREATE INDEX StockIndex
ON appSchema.StockEvents (StockSymbol);
创建唯一索引:
Create unique index 索引名称
On 表名(字段1,字段2)
聚集索引:clustered 每个键值只有一个聚集索引
非聚集索引noclustered:索引的键值包含指向表中记录存储位置的指针,不对表中数据排序
聚集索引的创建:
Create unique clustered index 索引名称
On 表名(字段名 DESC)
非聚集函数:
Create unique nonclustered index 索引名称
On 表名(字段名)
两种非聚集索引:建于堆上和建于聚集索引上
查询索引:exec sp_helpindex 表名
删除索引:drop index 表名.索引名
二,视图:
视图是一种逻辑对象,它是从一个或几个基本表中导出来的表,是一种虚拟表。
视图的内容可以是:1,基表中列的子集或行的子集 2,两个或多个基表的联合 3,基表的统计汇总 4,其他视图的子集 5,视图和基表的混合
视图定义的限制:1, create view语句不能包括compute或comprte by子句,也不能包括into关键字 2,仅当使用top关键字时,create view语句才能包括order by子句
3,视图不能引用临时表 4,视图不能引用超过1024列 5,在单一批处理中create view语句不能和其他t—sql语句组合使用
创建视图:
create view v_uservip
as
select [user].userid,[user].username,vipid,vipdate from [user] join vip
on [user].userid=vip.userid
更改视图:
alter view v_uservip
as
select [user].userid,sex,[user].username,vipid,vipdate from [user] join vip
on [user].userid=vip.userid
删除视图
drop view dbo.v_uservip
使用索引视图
1, 视图上创建的第一个索引必须是唯一聚集索引2, 创建视图时必须使用schemabinging选项 3,视图可以引用基表,但不能引用其他视图4,引用表和用户定义函数的时候,必须使用两部分名称 5,随后使用索引图的连接必须具有相同的选项设置。
2, 创建索引视图的限制
视图上创建的第一个索引必须是惟一聚集索引
创建视图时必须使用 SCHEMABINDING 选项
视图可以引用基表,但不能引用其他视图
引用表和用户定义函数的时候,必须使用两部分名称
随后使用索引视图的连接必须具有相同的选项设置
三,事务
事务可以自动提交或回滚,当事务中的一条语句不能执行则事务中的其他语句都不能执行
每条单独的语句都是一个事务
begin transaction 事务的起始点
begin try
insert into stu values('Jack1',20,1)
insert into stu values('Jack2',2,1)
commit transaction 事务提交
end try
begin catch
print '错误'
rollback transaction 事务回滚
end catch
select * from stu