SQLServer数据库教案.docx
《SQLServer数据库教案.docx》由会员分享,可在线阅读,更多相关《SQLServer数据库教案.docx(23页珍藏版)》请在冰豆网上搜索。
SQLServer数据库教案
《SQLServer数据库》
教案
第1章SQLServer的安装和配置
一、教学目标:
1.了解课程要求。
2.了解SQLServer的发展和特点。
3.了解SQLServer的安装和配置。
4.了解系统数据库和系统表的作用.
4.
5.了解SQLServer的9个常用工具。
二、教学重点和难点:
重点:
熟悉企业管理器与查询分析器
难点:
系统数据库和系统表的作用
三、教学方法与手段:
注重实例分析,采用一次理论一次实验的教学方式。
理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、课程要求简介:
共90课时,分为两部分,课堂教学45课时,实验教学45课时;课程培养目标:
通过本课程的学习,掌握SQLServer环境下进行编程的知识,具备利用SQLServer进行数据库应用程序开发的基本能力;考核要求……(5分钟)
2、SQLServer的定义:
是一个高性能的C/S结构的RDBMS,是为支持高容量的事务处理(如在线订购录入、存货目录、记帐或支付)以及数据仓库和决策支持系统而设计的。
3、SQLServer的发展、特点和新特性。
4、SQLServer的安装和配置。
(操作演示一部分安装过程;30分钟)
5、了解系统数据库和系统表的作用:
主数据库master、msdb、pubs等。
演示:
打开企业管理器,展开服务器,详细分析各个系统数据库和系统表
6、了解SQLServer的主要管理工具,熟悉企业管理器、查询分析器。
(1)讲授SQLServer的主要管理工具,分别打开九个工具,演示分析企业管理器的功能。
演示:
打开企业管理器,展开服务器,新建一个数据库sales。
注意:
可以由教师讲解,同时学生操作演示再创建一个数据库。
(2)分析查询分析器的使用方法,演示打开查询分析器的两种方法。
例:
在查询分析器地命令行窗口中输入如下的SQL语句:
usepubs
select*fromjobs
(3)了解SQLServer服务管理器的使用方法。
(4)掌握创建SQLServer服务器组的方法及注册SQLServer服务器的方法。
注意:
如果该服务器已成功注册,则显示具有改名称的服务器已存在,如果该服务器不能成功注册,则可能该服务器的服务没有启动,或者是现在的用户没有权限注册该服务器。
(5)打开服务器网络实用工具和客户端网络使用工具,分析它们的功能。
(6)演示打开联机帮助文档的三种方法。
如:
SHIFT+F1;选择菜单栏“帮助”等。
7、小结
8、思考与练习
第2章SQLServer数据类型
一、教学目标:
1.掌握各种数据类型的特点和基本用法
2.学会创建和删除用户自定义数据类型
二、教学重点和难点:
教学重点:
掌握各种数据类型的用法
教学难点:
用户自定义数据类型的创建
三、教学方法与手段:
采用互动式教学方法,理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、复习上次课内容,详细分析25个系统数据类型(50分钟)
在绝大多数编程环境中,数据类型由系统定义,这类数据类型通常称之为系统数据类型。
字符数据的类型:
Char,Varchar和Text
数值型数据类型:
bigint,int,smallint,tinyint,decimal,numeric,float和real
货币型数据类型:
Money和Smallmoney
时间/日期数据类型:
Datetime 和 Smalldatetime
二进制数据类型:
Binary(固定长度)和Varbinary (可变长度)
2、创建用户自定义数据类型
用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。
当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。
请看例子
例2.1UseNorthwind
Exec sp_addtype uname,'Varchar(8)','Not Null'
例2.2Use Sales
Execsp_addtypetelephone,'varchar(24)','NotNull'
Execsp_addtypefax,'varchar(24)','Null'
3、删除用户定义的数据类型sp_droptype
注意:
当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。
4、小结:
本章重点介绍了SQLServer数据类型的分类、使用方法和使用时的注意事项。
课本19页表2.1列出了SQLServer常见的数据类型。
5、课堂练习:
创建一个数据类型,要求其为字符型,最大长度为12,不允许为空。
第3章数据库和数据表
一、教学目标:
1、了解数据库的两种存储结构,以及文件和文件组的概念。
2、掌握创建数据库的三种方法。
3、学会修改数据库的属性和删除数据库。
2、掌握创建表的两种方法。
3、掌握创建、删除和修改约束的方法。
二、教学重点和难点:
教学重点:
设计和创建各种约束
教学难点:
文件和文件组的概念
三、教学方法与手段:
注重实例,采用一次理论一次实验的教学方法。
理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、复习第二章内容。
2、数据库由数据库文件(数据和对象)和事务日志文件(操作日志)组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。
主文件.mdf、辅助文件.ndf、事务日志文件.ldf
3、创建数据库的过程实际上就是为数据库设计名称、设计所占用的存储空间和存放文件位置的过程等。
演示操作:
A.使用向导创建数据库
B.使用企业管理器创建数据库
C.使用Transact-SQL语言创建数据库
思考:
请学生上讲台完成:
使用默认参数用Transact-SQL语言创建数据库。
4、修改数据库的方法:
重命名、收缩数据库等。
如:
execsp_renamedb旧名,新名
5、表是包含数据库中所有数据的数据库对象,用来存储各种各样的信息。
(30分钟)
演示操作:
A、利用企业管理器创建表
实例:
创建employees员工表…
B、利用Transact-SQL语言创建表
实例:
创建goods进货表…
注意:
请学生上讲台完成教材36页sell表的建立。
6、约束是SQLServer提供的自动保持数据库完整性的一种方法。
分析5种约束类型。
分别使用2种方法创建以下约束:
(40分钟)
主键约束、唯一性约束、检查约束、默认约束、外键约束
关键字分别为:
primarykey、unique、check、default、foreignkey。
提示:
教师讲解结束,请学生为sales数据库的各个表设计并创建各种约束。
7、分别使用2种方法增加、删除和修改employees的字段。
8、查看表、删除表的演示操作。
9、小结
10、课后作业
课本50页《本章习题》16、17、18题。
第4章数据库的查询
一、教学目标:
1、掌握如何使用update、insert、delete命令操作表中数据。
2、掌握使用Select语句查询数据的方法。
二、教学重点和难点:
教学重点:
多表联接查询
教学难点:
嵌套查询的使用
三、教学方法与手段:
采用互动式教学方法。
理论教学使用多媒体投影室。
四、教学课时:
6课时
五、教学基本内容:
1、复习上次课内容
2、请学生上讲台演示:
为t_student输入相应数据,并修改和删除数据。
提问思考:
如何使用语句命令的方法完成学生演示的数据操作?
3、SELECT语句能够从数据库中检索出符合用户需求的数据,并将结果以表格的形式返回,是SQLServer中使用最频繁的语句之一。
它功能强大,所以也有较多的子句,包含主要子句的基本语法结构如下:
SELECT列名1[,列名2]...
[INTO新表名]
FROM表名1[,表名2]...
[WHERE条件]
[GROUPBY列名列表]
[HAVING条件]
[ORDERBY列名列表[ASC|DESC]]
针对student数据库的3个表,举例,详细分析SELECT语句的各个子句。
重点分析以下几方面的问题:
●如何选择表中的列,列的别名,生成新的数据表等;
●使用ORDERBY子句,进行数据排序;
●使用比较运算符、逻辑运算符和LIKE、IN、BETWEEN等关键字过滤查询结果;
●使用聚合函数,例如COUNT、AVG、MAX、MIN、SUN等汇总数据;
●使用分组子句GROUPBY和HAVING,使用分组计算子句COMPUTE和COMPUTEBY;
●联接查询的五种类型:
内联接、左外联接、右外联接、完全外部联接、交叉联接;
●使用UNION操作符,掌握联合查询的方法;
●使用嵌套查询的方法。
4、用update、insert、delete命令操作表中数据。
提问:
A、update语句中没有where会如何?
B、insert语句中没有字段名和有字段名的区别?
C、delete语句中没有where语句会如何?
5、根据查询结果的不同将联接查询分为五种类型:
内联接、左外联接、右外联接、完全外部联接、交叉联接。
举例详细分析各种类型。
6、嵌套查询又叫子查询,嵌套查询是指在一个SELECT语句的WHERE子句或HAVING子句中,又嵌套有另外一个SELECT语句的查询。
嵌套查询中上层的SELECT语句块称为父查询或外层查询,下层的SELECT语句块称为子查询或内层查询。
例子:
SELECT*FROMemployees
WHERE编号=ANY(SELECT进货员工编号FROMgoods)
注意:
详细分析any和all的区别。
7、小结
8、课堂练习(50分钟)
教材71~72页《本章习题》
注意:
先由学生做课堂练习,后教师详细讲解
第5章索引与数据完整性
一、教学目标:
1.了解索引的定义、优点和分类
2.掌握创建、修改和删除索引的方法
3.理解数据完整性的概念
二、教学重点和难点:
重点:
使用语句创建索引;
难点:
聚集索引与非聚集索引的理解。
三、教学方法与手段:
注重实例,理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、复习。
(5分钟)
2、数据库中的索引是一个列表,在这个列表中包含了某个表中一列或者若干列值的集合,以及这些值的记录在数据表中的存储位置的物理地址。
优点:
可以大大加快数据检索速度可以保证数据记录的唯一性等。
3、索引的分类:
clustered、nonclustered、复合索引、唯一索引
注意:
举例书本目录,分析聚集索引与非聚集索引的区别
4、创建索引的三种方法:
A、使用企业管理器创建索引,举例:
为employees表创建索引I_电话。
B、使用Transact-SQL语句创建索引,实例:
在goods表创建索引I_进货时间。
C、使用向导创建视图
5、查看、修改和删除索引
注意:
删除索引时,索引前应注明表名。
如dropindext_student.I_number,t_student.I_name
6、索引的分析与维护
创建索引后,必须对索引进行维护,确保索引的统计信息是的有效的,才能够提高查找速度。
随着更新操作不断的执行,数据会变得支离破碎,这些数据碎片会导致额外的页读取,防碍数据的并行扫描。
应该定期整理索引清除数据碎片,提高数据读取的性能。
7、数据完整性
为了维护数据库中的数据和现实世界的一致性,SQLServer提供了确保数据库的完整性的技术。
数据完整性是指存储在数据库中的数据的一致性和准确性。
数据完整性有3中类型:
域完整性、实体完整性和参照完整性。
8、小节
●为什么要使用索引,索引的特点是什么;
●索引分类的依据是什么,了解各种索引的区别;
●掌握创建索引的三种方法,在创建索引的过程中如何设定其属性和参数;
●掌握删除和修改索引的方法;
●了解数据完整性的概念和分类;
●了解数据库完整性和约束的关系;
●掌握实现域完整性、实体完整性和引用完整性的各种方法。
9、课堂练习
课本84页《本章习题》
第7章视图
一、教学目标:
1、了解视图和数据表之间的区别、视图的优点。
2、掌握创建、修改和删除视图的方法。
3、掌握通过视图修改数据表的方法。
二、教学重点和难点:
教学重点:
使用命令创建视图;
教学难点:
如何通过视图修改数据表。
三、教学方法与手段:
采用互动式教学方法。
理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、复习:
使用命令查询所有男学生的姓名、年龄、选修课程、成绩。
(请学生上讲台演示,5分钟)
selectt_student.s_name姓名,year(getdate())-year(birthday)年龄,t_course.c_name课程名称,t_score.score成绩
fromt_student,t_course,t_score
wheret_student.s_number=t_score.s_number
andt_course.c_number=t_score.c_number
如果在以上程序前加命令:
CREATEVIEWaAS,则可以生成一个虚拟的表——视图。
2、由以上引导出视图的概念:
是从一个或者多个数据表或视图中导出的虚表,它的结构和数据是对数据表进行查询的结果。
3、视图的优点
视点集中、简化操作、定制数据、合并分割数据、安全性
4、创建视图的三种方法:
A、使用企业管理器创建视图。
例如,现在需要建立一个视图,通过该视图能够方便快捷地知道笔记本电脑的销售情况,则可以将sell和goods两张表同时添加到视图中,在表sell中选择“所有列”复选框,同时在表goods中选择“商品名称”字段对应的复选框。
B、使用Transact-SQL语句创建视图,例如,创建一个新视图v1,要求基表选择goods,sell,employees,来源字段为sell表中的销售编号、商品编号和数量;goods表中的商品名称;employees表中编号和姓名,要求查询采购部的赵飞燕所采购商品的销售情况
C、使用向导创建视图。
5、修改和重命名视图
6、掌握通过视图修改数据表的方法,使用时应该注意以下几点:
●修改视图中的数据时每次都只能影响一个基表。
●不能修改那些通过计算得到的字段。
●如果视图引用多个表时,无法用DELETE命令删除数据,若使用UPDATE命令则应与INSERT操作一样,被更新的列必须属于同一个表。
●执行UPDATE、DELETE命令时,所删除与更新的数据必须包含在视图的结果集中。
●如果在创建视图时指定了WITHCHECKOPTION选项,那么所有使用视图修改数据库信息时,必须保证修改后的数据满足视图定义的范围。
7、举例:
使用视图查询、修改数据
8、小结
9、课堂小练习。
(10分钟)
第7章Transact-SQL程序设计
一、教学目标:
1、了解批处理、全局与局部变量的概念。
2、掌握常用运算符及其优先级、常用函数的格式及用法。
3、掌握流程控制语句的种类及用法。
4、掌握游标的使用
二、教学重点和难点:
重点:
流程控制语句的使用
难点:
打开和使用游标
三、教学方法与手段:
注重举例,理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、两个GO之间的SQL语句作为一个批处理。
两种类型的注释字符:
单行注释:
使用两个连在一起的减号“--”作为注释符
多行注释:
使用“/**/”作为注释符
2、全局变量与局部变量的区别,定义局部变量的关键字为declare。
3、以复习方式提问:
运算符及其优先级。
4、系统函数、时间日期函数(如:
Day(),getdate(),month(),year())、数学函数、转换函数(如:
cast、convert)等等。
举例:
函数GETDATE()可以获得当前的日期和时间,使用YEAR(GETDATE())可以获得当年的年份,使用YEAR(birthday)可以获得学生的出生年份。
提问:
如何通过出生年月字段求学生年龄?
5、流程控制语句
使用T-SQL语言编程的时候,常常要利用各种流程控制语句去进行顺序、分支控制转移、循环等操作。
T-SQL提供了一组流程控制语句,包括:
条件控制语句、无条件控制语句、循环语句和返回状态值给调用例程的语句等。
如:
BEGIN…END语句块、IF…ELSE语句、WHILE语句、CASE语句、GOTO语句、RETURN语句、WAITFOR语句
注意:
通过教材例子详细分析流程控制语句
6、使用游标
通常情况下,关系数据库中的操作总会对整个记录集产生影响,而在实际应用中,应用程序有时只需要每次处理一条或一部分记录。
在这种情况下,就需要使用游标在服务器内部处理结果集,游标可视为一种特殊的指针,它不但可以定位在结果集的特定记录上,还可以从结果集的当前位置查询一条或多条记录并对读取到的数据进行处理。
使用游标要遵循以下顺序:
声明游标→打开游标→读取数据→关闭游标→删除游标
7、(20分钟)思考与练习:
教材141页第6题。
学生课堂练习后,教师详细讲解。
8、小结
9、课后思考题
(1)用一条查询语句从下列表中找出所有课程分数大于80分的学生姓名。
Namekechengfenshu
张三语文92
张三数学75
王五语文80
王五数学85
王五英语91
李四语文100
李四数据79
(2)删除除了自动编号不同以外所有都相同的冗余记录
自动编号学号姓名课程编号分数
199001张三D00190
299002李四D00189
399001张三D00190
第8章存储过程
一、教学目标:
1、了解存储过程的优点和分类。
2、掌握创建、修改和删除存储过程的方法。
3、学会使用存储过程。
二、教学重点和难点:
教学重点:
使用命令创建存储过程
教学难点:
带参数的存储过程
三、教学方法与手段:
注重实例,采用一次理论一次实验的教学方法。
理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、复习,分析上次课布置的“课后思考题”。
(10分钟)
2、在使用Transact-SQL语言编程的过程中,我们可以将某些需要多次调用的实现某个特定任务的代码段编写成一个过程,将其保存在数据库中,并由SQLServer服务器通过过程名来调用它们,这些过程就叫做存储过程。
3、存储过程的分类
A、系统存储过程:
sp_help、sp_helptext、sp_depends
B、用户自定义存储过程:
简单实例
CREATEPROCdbo.Os
AS
SELECT*FROMt_scoreWHEREscore<60
4、创建存储过程的三种方法:
A、使用企业管理器创建存储过程,实例:
创建一个存储过程pro_emp,用于显示employes表的所有信息。
B、使用Transact-SQL语句创建存储过程,实例:
创建一个带有输入参数的存储过程proc_goods,查询指定员工所进商品信息。
创建和执行存储过程的脚本内容如下:
USESales
GO
CREATEPROCproc_goods
@员工编号char(6)='1001'
AS
SELECT商品编号,商品名称,生产厂商,进货价,零售价,数量,进货时间
FROMGoods
WHERE进货员工编号=@员工编号
课堂练习:
创建一个带有输入和输出参数的存储过程proc_GNO,查询指定厂商指定名称的商品所对应的商品编号。
C、使用向导创建存储过程。
5、执行存储过程。
--执行存储过程,查询1001号员工所进的商品的信息
EXECproc_goods@员工编号=default
--或
EXECproc_goods@员工编号='1001'
6、执行字符串
本例是用EXECUTE语句执行字符串的示例。
USESales
GO
DECLARE@sqlstrVARCHAR(40)
SET@sqlstr='SELECT*FROMEmployeesORDERBY姓名'
EXEC(@sqlstr)
7、思考:
课本131页《本章习题》
8、小结
第九章触发器
一、教学目标:
1、理解触发器的概念以及分类。
2、掌握创建触发器的两种方法以及触发器的使用、修改和删除。
二、教学重点和难点:
教学重点:
根据实际如何选择不同类型的触发器;
教学难点:
触发器中临时表inserted与deleted的使用。
三、教学方法与手段:
注重实例,采用一次理论一次实验的教学方法。
理论教学使用多媒体投影室。
四、教学课时:
3课时
五、教学基本内容:
1、复习,然后由存储过程的定义与优点引出触发器的定义,触发器与一般存储过程的区别:
一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。
(5分钟)
2、触发器的优点:
级联修改数据库中相关的表;实现比CHECK约束更为复杂的约束操作;拒绝或回滚违反引用完整性的约束操作;比较表修改前后数据之间的差别,并根据差别采取相应的操作。
3、触发器的两种类型(举例,详细分析两者的区别)
(1)AFTER触发器:
将在数据变动(INSERT、UPDATE和DELETE操作)完成后才被激发。
对变动数据进行检查,如果发现错误,将拒绝或回滚变动的数据。
(2)INSTEADOF触发器:
将在数据变动以前被激发。
并取代变动数据(INSERT、UPDATE和DELETE操作)的操作,转而去执行触发器定义的操作。
4、分别使用两种方法创建一个DELETE类型的触发器。
A、使用企业管理器创建触发器,举例:
选择Sales数据库的Goods表,在下面的步骤中将在Goods表创建触发器。
B、使用Transact-SQL语言创建触发器
举例:
创建一个简单的触发器,当有人试图更新Sales数据库的商品信息时,利用触发器产生提示信息。
--创建触发器
USESales
GO
CREATETRIGGERtri_UpdateGoods
ONGoods
FORUPDATE
AS
RAISERROR('更新表数据',16,10)
--测试触发器
UPDATEGoods
SET数量=8
where商品编号=5
结果如下:
服务器:
消息50000,级别16,状态10,过程tri_UpdateGoods,行5
更新表数据
5、修改与删除触发器
注意:
重命名触发器EXECsp_rename'原触发器名','新触发器名'
6、小结与思考:
A、存储过程与触发器有什么不同?
B、触发器与约束的区别是什么?
C、触发器有几种类型,如何创建?
D、什么是嵌套触发器、递归触发器?
第10章用户自定义函数与事务