实验要求:练习索引、视图、存储过程和触发器的使用,并了解作用
实验步骤:
一、索引
什么是索引:
索引是SQL Server编排数据内部方法,通过索引可以快速查找数据,而无需扫描整个表。
索引分类:
唯一索引:唯一索引不允许两行具有相同的索引值。
主键索引:要求主键中的每个值是唯一的。
聚集索引:数据存放的物理顺序与索引顺序相同。
非聚集索引:数据存放的物理顺序与索引顺序不不相同。
复合索引:将多个列组合而成的索引。
全文索引:一种特殊类型的基于标记的功能性索引。
唯一索引和主键索引的区别:
主键索引一定是唯一索引,唯一索引不一定是主键索引。主键索引一定是聚集索引。唯一索引不一定是聚集索引。
选择索引列的标准:
频繁搜索的列
经常用作查询选择的列
经常排序、分组的列
经常用作连接的列(主键/外键)
创建索引:
1.选中一张表,展开表,找到索引,右击索引——新建索引
2.在新建索引对话框中,指定索引名称,可以选择给那一列创建索引,创建什么类型的索引,完成后点击确定,就创建好了一个新的索引。
3.指定SQL Server 数据查询的索引查询方法
Select * from 表名
With (index=索引名称)
例:
二、视图
什么是视图:
视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。
视图直接显示来自表中的数据,只供查看,无法修改。
使用视图的好处:
对最终用户的好处
1.结果容易理解。创建视图时,可以把列名改为有意义的名称。在视图中修改列名不会影响基表的列名
2.获得数据更容易。不需要懂T-SQL 的查询语言,通过视图即可获得数据。
对开发人员的好处
1.限制数据检索更容易。建视图时可将对用户保密的列排除在外。
2.维护应用程序更方便。调试视图比调试查询更容易
创建视图:
方法一:(通过SSMS图形化界面创建)
1.展开数据库——找到视图,右击视图——新建视图
2.选择要添加到视图中的表,选择表然后点击添加。可以添加多张表。添加完成后点击关闭
3.手动选择表之间的连接条件,并选择最终要在视图中显示的列。(在要显示的列前面打钩)
4.配置完后,点击保存
输入视图名称,点击确定
5.在查询视图时,因为视图是虚拟表所有可以直接使用select 进行查询
方法二:(使用T-SQL语句创建视图)
语法:
Create view 视图名称
As
Select 语句
例:
存储过程
什么是存储过程:
存储过程是SQL语句和控制语句的预编译集合,保存在数据库里,可由应用程序调用执行
使用存储过程的优点:
模块化程序设计
执行速度快,效率高
减少网络流量
具有良好的安全性
存储过程分类:
一、系统存储过程
1.常用的系统存储过程(以“sp_”开头,存放在Resource数据库中)
2.常用的扩展存储过程(以“xp_”开头,以DLL形式单独存在)
扩展存储过程默认被关闭,需要启用
二、用户自定义的存储过程
调用执行存储过程:
Exec[UTE] 存储过程名称[参数值]
创建存储过程:
方法一(使用T-SQL语句创建)
Create proc 存储过程名称
[@参数1 数据类型]
[@参数1 数据类型]
As
SQL 语句
例:
调用执行存储过程:
方法二(使用SSMS创建)
四、触发器
什么是触发器:
是在对表进行插入、更新或删除操作时自动执行的存储过程
用于强制业务规则,可以定义比用 CHECK 约束更为复杂的约束
通过事件触发而被执行的
分类:
INSERT触发器:当向表中插入数据时触发
UPDATE触发器:当更新表中某列、多列时触发
DELETE触发器:当删除表中记录时触发
触发器涉及到两张表(delete表和inserted表)(由系统管理,用户不可以修改,仅做了解)
触发器的作用:
强化约束(实现比CHECK语句更为复杂的约束)
跟踪变化(侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化)
级联运行(侦测数据库内的操作,并自动地级联影响整个数据库的各项内容)
创建触发器:
方法一(使用SSMS创建)
方法二(使用T-SQL语句创建)
语法:
Create trigger 触发器名称
On 执行触发器的表
[with encryption] #加密syscomments 表中包含create trigger语句文本的条目。
From [delete,insert,update]
As
SQL 语句
例:
删除changji 表中数据时会自动回滚,并提示禁止删除