SQLSERVER2000教案2_第1页
SQLSERVER2000教案2_第2页
SQLSERVER2000教案2_第3页
SQLSERVER2000教案2_第4页
SQLSERVER2000教案2_第5页
免费预览已结束,剩余47页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、授课班级授课时间授课题目(教学章节或主题):授课类型多媒体排序的应用、SELEC观他子句教材分析:主要讲解了数据库中排序的应用,重点分析 SELEC耐句的其他子句的基本 应用。教学目的与要求:1、理解排序的基本概念2、掌握排序的基本应用3、掌握SELEC以他子句的应用:生成表、连接查询重点与难点:重点:排序、SELEC顶他语句的应用难点:连接查询。教学内容与过程(设想、方法、手段)采用多媒体教学方式,理论与实践结合,上课多用通俗的例子来讲解一些 抽象的专业名词。思考题、讨论题、作业:习题4、6、7参考资料(含参考书、文献等):SQL Server 2000数据库管理与开发耿文兰 主编 电子工业

2、出版社SQL SERVER程起步王宏泰 译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社、课前复习总结:1、查询语句的一般格式SELECT 列名 1,列名 2, .>INTO新表名FROM款名1,表名2>WHERE <条件表达式> GROUP BY 咧名 1,列名 21.> HAVING <条件表达式> ORDER BY 创名 > ASC | DESC 2、使用系统函数聚集函数:对表中的某个字段进行计算avg(字段名) 求平均值count(字段名)统计字段值的个数sum(字段名)求字段值和max(字段名)求

3、字段中的最大值min(字段名)求字段中的最小值注:distinct:限制重复值,不统计重复值all:为默认值,但不统计全部为空的值*表示统计所有的值3、运算符的应用(1) NOT AND OR :Where 课程号='101' and 成绩 >=80(2) LIKE与 _ 的用法Where 姓名 like '陈%'(3) BETWEEN 与 AND 的用法Where 课程号='101' and成绩 between 80 and 100(4) IN() 的用法Where 课程号 in('101','102',&

4、#39;105')4、 where 和 having 的比较使用GROUP BY句分组后,用HAVING子句对分组后的数据 进行进一步筛选例查找XSC以据库中平均成绩在85分以上的学生的学号 和平均成绩.SELECT学号,AVG(成绩)AS平均成绩FROM xsqkGROUP B荐号HAVING AVG® 绩)>=85二、 排序 ORDER BY子句格式:ORDER BY 排序表达式ASC | DESCASC升序 DESC :降序例1:将计算机应用专业的学生按出生时间先后排序。SELECT *FROM XSQKWHERE专业名='计算机应用ORDER BY出生日

5、期 ASC例2:查询课程号为103的成绩记录,并按成绩的降序排列(137页习题4)SELECT学号,课程号,成绩FROM XS_KCWHERE 课程号='103'ORDER BYK 绩 DESC例3:使用子查询求恰好有两门课程不及格的学生信息(137页习题5 )SELECT *FROM XS_KCWHERE 学号 IN( SELECT 学号FROM XS_KCWHERE 成绩 <60Group by 学号Having count(课程号)=2)三、将查询结果形成新表对表进行查询时,我们也可以使用INTO子句将查询的结果生 成一个新表,这种方法常用于创建表的副本或临时表。S

6、ELECT 列名 1,列名 2, .>INTO新表名FROM款名1,表名2>WHERE <条件表达式> .四、连接查询1、基本概念:在关系数据库中,每一个表格都是经过规范化创建的,即一 个实体存储为一张表格,为了取得足够的信息进行全面分析,必 须将多个表格按一定的逻辑关系连接起来,以获得一个大的结果 集,这就需要用连接查询来实现.所谓连接查询就是将多个表通过某个或某些列为条件进行连 接,从中查询数据.要使单句SELEC语句显示多张表中的数据,就要求表 中必须有一个对等的公共列,以联接两张表连接是两元运算,可对两个或多个表进行查询,结果通常是含有参加连接运算的两个或多个表

7、的指定列的表。(即涉及多个表的查询)2、连接两大类语法表示形式:ANSI语法SELECT字段歹“FROM 表名JOIN 表名 ON 连接条件Where 查询条件SQL语法SELECT字段列表FROMS名1,表名2,Where查询条件AND|OR连接条件3、连接的形式:内连接INNER JOIN外连接 OUTER (left right full) JION交叉连接CROSS JOIN自连接(1)交叉连接:得到所连接表的所有组合 cross join(2)内连接:得到连接表的满足条件的记录组合innerjoin(3)外连接:(左、右、全)得到一个表的所有行,及其余 表满足连接条件的行 full

8、| left | right outer join(4)自连接同一个表之间进行连接内连接例4:Select表1.学号,姓名,年龄,成绩From 表1 inner join 表2 on 表1.学号=表2.学号例5:Select表1.学号,姓名,年龄,成绩From 表 1,表 2where表1.学号二表2.学号外连接:如果结果集包含来自一个表的所有行和另一个表中的匹配行的话,那么这种连接称为外连接SELECT字段歹“FROM 表名FULL| LEFT | RIGHTOUTER JOIN 表名 ON连接条件注:如果连接表的同名字段需要引用,应在字段名前加表名例6:左连接Select表1.学号,姓名,

9、年龄,成绩From 表 1 left outer join 表 2 on 表 1.学号=表 2.学号例7:Select表1.学号,姓名,年龄,成绩From 表 1,表 2where表1.学号* =表2.学号右连接例8:Select表1.学号,姓名,年龄,成绩From 表 1 right outer join 表 2 on 表 1.学号=表 2.学号例9:Select表1.学号,姓名,年龄,成绩From 表 1,表 2where表1.学号=* 表2.学号全连接例10:Select表1.学号,姓名,年龄,成绩From 表 1 full outer join表 2 on 表 1.学号=表 2.学号交

10、叉连接(Cross Joins )SELECTS名 1,歹U名 2,FROM 1 CROSS JOIN表 2自身连接(Self joining)例11:查找XSC做据库每个学生的情况以及选修的课程情 况。USE XSCJSELECT XS*,xsqk*FROM XS,xsqkWHERE XS.学号二xsqk.学号例12:查找选修了课程号为102的课程且成绩在60分以上 的学生姓名及成绩.SELECT姓名,成绩FROM XS, XSQKWHERE X以号=XSQK 号 AND课程号='102' AND 成绩=60例13:查找选修了 “网络基础”课程且成绩在 60分以下的 学生的学

11、号、姓名、课程名及成绩。(多表连接)SELECT XS号,姓名,课程名,成绩FROM XS, KC, XSQKWHERE X字号=XSQK 号 ANDKC.课程号=XSQK®程号AND 课程名=网络基础'AND成绩二60例14:查询XSC做据库每个学生的情况以及选修的课程情 况。SELECT *FROM XS INNER JOIN xsqkON XS.学号-xsqk.学号内连接可以省略INNER;内连接仍可使用 WHERE定条件;内 连接还可用于多个表的连接。? 外连接只能对两个表进行连接。?交叉连接不能有条件,且不能带 WHERE句。自然连接例15:自然连接查询每个学生的两

12、门课成绩SELECT a学号,a.课程号,a.成绩,b.课程号,b.成绩FROM xsqk a join xsqk b on a. 学号=b.学号WHERE熟程号b.课程号例16:将计算机网络专业学生的“网络基础”课程成绩按降 序排列。SELECT姓名,课程名,成绩FROM XS,KC,xsqkWHERE XS学号-xsqk.学号AND KC.课程号=xsqk.课程号AND课程名=网络基础'AND 专业名='计算机网络ORDER BY 成绩 DESC4、联合查询联合查询是指将两个或两个以上的 SELEC语句通过UNION 运算符连接起来的查询,联合查询可以将两个或更多查询的结果

13、 组合为单个结果集,该结果集包含联合查询中所有查询的全部行。使用UNIONS合两个查询的结果集的两个基本规则是:所有查询中的列数和列的顺序必须相同。数据类型必须兼容。联合可以指定为如下形式:SELECT语句UNION ALLSELECTg 旬注:all表示包含所有行(缺省抹去重复行)两个select语句中的字段个数及类型应相同 最终结果集的标题由第一个select语句决定 5、嵌套查询将一个查询块嵌套在另一个查询块的查询称为嵌套查询。嵌套查询中上层的查询块称为外层查询或父查询,下 层查询块称为内层查询或子查询。内层子查询作为 WHERE句的限制条件或新增列的值。嵌套查询一般按照由里向外的方法处

14、理(1)格式:Select 字段列表 From TableWHER手段名=Select字段名From表名WHER窿件表达式在某些嵌套查询中 WHERE后还可以使用AN怀0 ALL 两个关键字。这两个关键字可以和算术运算符在一起 构成各种查询条件,如:ALL表示大于子查询中的所 有值。子查询的SELECT语句可与外部查询指向不同的表或指向同一个表。执行时,先执行子查询再执行外部查询例17:统计网络基础课程成绩在 70以上的人数.SELECT COUNT成绩)AS 网络基础成绩70分以上的 人数FROM xsqkWHER政绩=70 AND课程号=(SELECT 课程号FROM KCWHER磔程名=

15、'网络基础')例18:平均成绩在60以下的学号.Select distinct 学号From xsqk aWhere 60>( select avg( 成绩)from xsqk bwhere b.学号二a.学号)如果子查询返回的是单个列多个值,必须在子查询前使用比较运算符any、all (返回多值)例19:Select distinct授课教师From kcWhere课程号=any( select 课程号from xsqkwhere成绩 <60)(2)引入 IN (或 NOT IN)not in(子查询返回多值)例19:SELECT学号,姓名,联系电话FROM xs

16、Where 学号 in (SELECT distinct 学号FROM xsqkWhere成绩 <60)(3)引入 EXISTSEXISTS用于检查子查询返回的行是否存在,返回 TRUE或FALSE格式:notexists(子查询)注:子查询的字段列表必须为*连接与子查询的异同点共同点:都要涉及两个或多个表。有的查询既可使用子查询也可使用连接来表达。区别点:连接可以合并两个或多个表中的数据;而子查询的结果只能 来自一个表。连接执行速度快;而子查询可以将一个复杂的查询分解为一 系列的逻辑步骤,条理清晰。授课班级06软件技术1、2授课时间2007.10.24参考资料(含参考书、文献等):SQ

17、L Server 2000数据库管理与开发耿文兰 主编 电子工业出版社SQL SERVER程起步王宏泰 译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社授课题目(教学章节或主题):机房实训授课类型数据库排序的建立教材分析:教材给定了相应的查询操作,学生根据实训内容,熟练掌握查询的基本操 作,通过实训完成查询的各种应用。教学目的与要求:1、理解排序的基本概念。2、掌握排序的基本操作。3、掌握SELEC以他子句的应用重点:排序、SELEC仔旬。难点:连接查询。教学内容与过程(设想、方法、手段)学生到机房进行上机实训I,教师进行指导。思考题、讨论题、作业:实训

18、七学生完成相应实训授课班级06软件技术1、2授课时间2007.10.30授课题目(教学章节或主题):授课类型多媒体视图、游标的建立 教材分析:主要讲解了数据库中视图和游标的基本概念,重点介绍了视图的建立、修 改和删除等操作,同时也详细介绍了游标的应用。教学目的与要求:1、理解视图的基本概念2、掌握视图的基本应用3、理解游标的概念、掌握游标的应用重点与难点:重点:视图的应用难点:游标的应用。教学内容与过程(设想、方法、手段)采用多媒体教学方式,理论与实践结合,上课多用通俗的例子来讲解一些 抽象的专业名词。思考题、讨论题、作业: 习题8、9课后分析教学内容与过程一、课前复习总结:1、查询语句SEL

19、EC矶他的应用2、排序的应用3、连接查询二、视图的概念1、视图概念视图是一个数据库的数据对象,并不存储数据,只是存储了 一个查询语句视图不是真实存在的基础表,而是一个虚拟表,可以用来所映 一个或多个表的子集,其内容由一个查询语句定义。被视图引用的表称为基表视图中的数据都来自于基表视图定义好后,就可以象普通表格一样使用使用视图实际就是执行一个保存在视图中的查询语句2、使用视图的优点和作用(1)可以使视图集中数据、简化和定制不同用户对数据库的 不同数据要求。(2)使用视图可以屏蔽数据的复杂性,用户不必了解数据库 的结构,就可以方便地使用和管理数据,简化数据权限管理和重 新组织数据以便输出到其他应用

20、程序中。(3)视图可以使用户只关心他感兴趣的某些特定数据和他们 所负责的特定任务,而那些不需要的或者无用的数据则不在视图 中显示。(4)视图大大地简化了用户对数据的操作。(5)视图可以让不同的用户以不同的方式看到不同或者相同 的数据集。3、创建视图时应该注意以下情况(1)只能在当前数据库中创建视图。(2)如果视图引用的基表或者视图被删除,则该视图不能再 被使用,直到创建新的基表或者视图。(3)如果视图中某一列是函数、数学表达式、常量或者来自 多个表的列名相同,则必须为列定义名称。(3)不能在视图上创建索引,不能在规则、缺省、触发器的 定义中引用视图。(5)当通过视图查询数据时,SQLServe

21、r要检查以确保语句 中涉及的所有数据库对象存在,而且数据修改语句不能违反数据 完整性规则。(6)视图的名称必须遵循标识符的规则,且对每个用户必须 是唯一的。止匕外,该名称不得与该用户拥有的任何表的名称相同。 三、视图的建立1 .利用企业管理器创建视图2 .用Transact-SQL语句创建视图语法形式如下:CREATE VIEW < database_name > . < owner > . view_name ( column , n )WITH < view_attribute > ,n ASselect_statementWITH CHECK OPTI

22、ON view_name用于指定视图的名称,column用于指定视图中的 字段名称。select_statement 用于创建视图的SELECTS旬,利用 SELEC命令可以从表中或者视图中选择列构成新视图的列。WITH CHECK OPTION于强制视图上执行的所有数据修改语 句都必须符合由select statement设置的准则。例1选择表xs,kc和xk中的部分字段和记录创建视图,并 且限制表中的记录只能是名称为“胡国强”的记录集合,视图定 义为view_s1 ,其程序清单如下:create view view_s1asSelect姓名,专业名,课程名,成绩,授课教师From xs,x

23、k,kcWhere姓名"胡国强'and xs.学号=xk.学号and xk.课程 号=".课程号例2创建视图,包含有不及格课程的学生信息.视图定义为 v_bjg ,其程序清单如下:create view v_bjg asSelect xs.学号,姓名,课程名,成绩,联系电话From xs,xk,kcWhere成绩<60 and xs.学号=xk.学号and xk.课程号=kc.课住练习创建平土§分在85以上的学生信息视图.视图定义为 v_youxiu ,其程序清单如下:create view v_youxiu asSelect学号,姓名,联系电话Fr

24、om xsWhere 学号 in (select 学号 from xkGroup by学号having avg(成绩)>=85 )3 .利用向导创建视图四、修改和重命名视图1 .修改视图(1)利用企业管理器修改视图。(2)使用ALTER VIEW语句修改视图。ALTER VIEWView_name(column,n)WITHENCRYPTIONASselect_statementWITH CHECK OPTION 2 .重命名视图(1)利用企业管理器重命名视图。(2)可以使用系统存储过程sp_rename修改视图的名称,该 过程的语法形式如下:sp_rename old_name,new

25、_name例子3:把视图view_s1重命名为view_s2 ,其程序清单如下:sp_rename view_s1, view_s2五、查看视图信息、删除视图1 .查看视图信息每当创建了一个新的视图后,则在系统说明的系统表中就定 义了该视图的存储,因此,可以使用系统存储过程sp_help显示视图特征,使用sp_helptext显示视图在系统表中的定义,使用 sp_depends显示该视图所依赖的对象。它们的语法形式分别如下:(1) sp_help 数据库对象名称(2) sp_helptext 视图(触发器、存储过程)(3) sp_depends 数据库对象名称使用SQL Server查询分析器

26、和企业管理器来显示视图使用SQL Server查询分析器(Query Analyzer )可以方便 地显示视图信息,使用sp_helptext存储过程显示视图的特征。2、删除视图(4) 使用企业管理器删除视图。(5) 使用Transact-SQL语句DROP VIEW删除视图的语法形 式如下:DROP VIEW view_name,n可以使用该命令同时删除多个视图,只需在要删除的视图名 称之间用逗号隔开即可。例子4:同时删除视图v_student和v_teacher ,其程序清单 如下:drop view v_student,v_teacher3、通过视图修改记录使用视图修改数据时,需要注意以

27、下几点:修改视图中的数据时,不能同时修改两个或者多个基表,可以 对基于两个或多个基表或者视图的视图进行修改,但是每次修改 都只能影响一个基表。不能修改那些通过计算得到的字段。如果在创建视图时指定了 WITH CHECK OPTION项,那么所 有使用视图修改数据库信息时,必须保证修改后的数据满足视图 定义的范围。(6) 插入数据记录例子6:首先创建了一个新的视图v_employees,该视图基于表 employees 创建。create view v_employees(number, name, age, sex, salary)asselect number, name, age, sex

28、, salaryfrom employeeswhere name=' 张三'(7) 更新数据记录使用视图可以更新数据记录,但应该注意的是,更新的只是 数据库中的基表。例子 7:仓1J建了个基于表 employees的视图 v_employees, 然后通过该视图修改表employees中的记录。其程序清单如下:create view v_employees asselect * from employeesupdate v_employeesset name='张然'where name=' 张三'(3)删除数据记录使用视图删除记录,可以删除任何

29、基表中的记录,直接利用 DELET曲句删除记录即可。但应该注意,必须指定在视图中定义 过的字段来删除记录。例子8:利用视图v_employees删除表employees中姓名为张 然的记录。其程序清单为:delete from v_employeeswhere name=' 张然'六、批处理、脚本和游标1、当任务不能由单独的T-SQL完成时,SQL使用批处理、脚 本、存储过程、触发器来组成多条 SQL语句。脚本:存储在文件中的一系列 SQL语句。脚本中包含一个或多个批处理。2、创建批处理的限制 不能在一个批处理中定义和使用 check约束 不能在一个批处理中撤消对象并重新创建它

30、们 不能在一个批处理中改变表和引用新列 若在一个批中存在语法错误,则整个批都不执行注:可用go语句结束一个批例题1:Use marketGoPrint'顾客表包含顾客信息如下:Select * from customersgo3、脚本:(1)脚本是存储在文件中的一系列 SQL语句,即一系列按顺序提交的批处理。(2) T-SQL脚本中包含一个或多个批处理。(3)使用脚本可以将创建和维护数据库时的操作步骤保存为 一个磁盘文件。(4)查询分析器是建立脚本最好的环境4、系统存储过程:(1)系统存储过程在master数据库中创建并存储。带有前缀sp_。如:sp_help(2)系统查找存储过程的顺

31、序:1)2) 3 ) 教材51页(3)如果用户建立的存储过程与系统存储过程同名那么永远 也不会执行用户建立的存储过程。七、游标游标是一种数据访问机制,是一个在给定结果集中以行为单位访问和操纵数据的数据库对象。游标的好处是可以逐行的处理数据优点:1、允许定位于结果集中的特定的行2、从当前结果集中获取一行3、能对结果集的当前行进行修改根据处理特性分类:130页1、静态游标(不检测数据行的变化)adopenstatic2、动态游标(反映所有数据行的改变)adopendynamic3、关键字集游标(能反映修改,但不能准确反映插入、删 除)adopenkeyset根据结果集是否允许修改:1、只读游标禁止

32、修改游标结果集中的数据2、可写游标允许修改游标结果集中的数据,它又可以分为部分可 写和全部可写。根据移动方式分:1、滚动游标(可前后移动)默认情况下,静态游标、动态游标、关键字集游标都 是滚动游标。2、向前游标(只能向前移动,不支持滚动)adopenforwardonly游标使用顺序:1、定义游标 DECLARE2、打开游标 OPEN3、使用游标 FETCH4、关闭游标 CLOSE5、释放游标 DEALLOCATEANSI标准定义:declare 游标名 insensitivescroll cursorfor select 语句for read only | updateof列名,列名口注:i

33、nsensitive静态游标scroll滚动游标read only只读游标update of歹U名可写游标,指定可修改的字段例8声明一个静态游标,用于获取学生信息declare r_xs insensitive cursorfor select 学号,姓名,出生日期from xsT-SQL扩展标准declare 游标名 cursor LOCAL |GLOBALFORWARD_ONLY | SCROLLSTATIC | KEYSET | DYNAMIC READ_ONLY |SCROLL_LOCKSfor select 语句for updateof 列名,列名口注:LOCAL局部游标GLOBAL

34、全局游标FORWARD_ONLYR 向前 SCROLL 滚动STATIC 静态KEYSET关键字集DYNAMIC动态READ_ONLY只读SCROLL_LOCK锁定游标当前行打开游标open游标名关闭游标close 游标名释放游标deallocate 游标名获取游标的数据FETCH NEXT | PRIOR | FIRST | LAST |ABSOLUTE n | nvar | RELATIVE n | nvarFrom 游标名into 变量注:NEXT 下一行 PRIOR 上一行 FIRST 第一行LAST最后一行 ABSOLUTE n第n行RELATIVE n当前位置开始的第n行INTO

35、变量 把当前行的各字段值赋值给变量授课班级06软件技术1、2授课时间2007.11.1授课题目(教学章节或主题): 创建和使用视图授课类型机房实训教材分析:教材给定了相应的查询操作,学生根据实训内容,熟练掌握查询的基本操 作,通过实训完成查询的各种应用。教学目的与要求:1、理解视图的基本概念。2、掌握视图的基本操作。3、掌握游标的应用。重点与难点:重点:视图的应用。难点:游标的实现。教学内容与过程(设想、方法、手段)学生到机房进行上机实训1,教师进行指导。思考题、讨论题、作业:学生完成相应实训参考资料(含参考书、文献等):SQL Server 2000数据库管理与开发耿文兰主编电子工业出版社S

36、QL SERVER程起步王宏泰译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社授课班级06软件技术1、2授课时间2007.11.5授课题目(教学章节或主题): 索引、约束的建立授课类型多媒体教材分析:主要讲解了数据库索引的基本概念,重点介绍了索引的建立、修改和删除 等操作。教学目的与要求:1、理解索引的基本概念2、掌握索引的基本应用3、掌握索引分类重点与难点:重点:索引的应用难点:索引的实现。教学内容与过程(设想、方法、手段)采用多媒体教学方式,理论与实践结合,用实际的操作、演示来完成对知 识的讲解。思考题、讨论题、作业:习题1参考资料(含参考书、文献等

37、):SQL Server 2000数据库管理与开发耿文兰 主编 电子工业出版社SQL SERVER程起步王宏味译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社课后分析教学内容与过程、索引1、什么叫索引索引是SQLServer使用的一种内部表结构,它是 基于表中的一个列或多个列的值,提供对表进快速访问的 一种访问机制索引的目标是提高存取数据页的速度在数据库中,索引使数据库程序无须对整个表进 行扫描,就可以在其中找到所需数据。2、索引的作用 可以大大加快数据检索速度。 在使用ORDER BY GROUP BY句中进行检索数 据时,可以显著减少查询中分组和排序

38、的时间 。3、索引的类型 索引的类型:聚集索引非聚集索引 索引的类型:唯一索引非唯一索引聚集索引与非聚集索引聚集索引对表的物理数据页中的数据按列进行排 序,然后再重新存储到磁盘上。数据被物理排序,索引顺序与物理顺序相同 按照索引字段值的大小顺序存储每个表只能有一个聚集索引(一般用在主键 上)非聚集索引行的物理顺序不同于索引的顺序索引顺序以逻辑顺序排序(只排序索引键)每个表可以有249个非聚集索引一般在用于联接和where子句所使用的列上创建(常用于外键上)4、索引键索引键可以是表中的单个字段,也可以由多个字段组合而成。一个索引就是一组索引键值的列表选择索引键的准则1. 频繁使用在select列

39、表和where子句中的列2. 用在group by 或order by 子句中列3. 用于联接的列4. 用于主关键字的列5. 用于外关键字的列5、索引的缺点创建索引要花时间需要额外的存储空间每次修改数据,索引都需更新6、创建索引SQL Server 2000创建索引的方法(1)利用索引向导创建索引。(2)利用企业管理器直接创建索引。(3)利用Transact-SQL语句中的CREATENDEX命令仓U建索 引。SQL Server 2000建立或修改表时,如果添加了一个主键约束 或唯一性约束,系统自动在表中生成一个唯一性索引.若表中已有聚集索引,则此索引为非聚集索引。否则, 自动生成聚集索引。

40、若将表中某字段设置为主键,具 唯一索引名为PK去 名。若将表中某字段设置为唯一性约束,其 唯一索引名为 UQ次名。利用企业管理器直接创建索引(1)在企业管理器中,展开指定的服务器和数据库,选择 要创建索引的表,用右键单击该表,从弹出的快捷菜单中选择所 有任务项的管理索引选项,就会出现管理索引对话框,在该对话 框中,可以选择要处理的数据库和表 。(2)单击“新建”按钮,则出现新建索引对话框。(3)选择完成后单击“确定”按钮,即可生成新的索引; 单击“取消”按钮,则取消新建索引的操作。利用Transact-SQL语句中的CREATE山口£命令创建索弓I其语法形式如下:CREATEUNIQ

41、UECLUSTERED| NONCLUSTERED INDEX index_name ON table | view ( column ASC | DESC ,n )ON filegrou p UNIQUE用于指定为表或视图创建唯一索引,即 不允许存在索引值相同的两行。C CLUSTERE训于指定创建的索引为聚集索引。* NONCLUSTER ED于指定创建的索引为非聚集索引。index_name:用于指定所创建的索引的名称。table :用于指定创建索引的表的名称。例子6-1 :为表employees创建了一个唯一聚集索引,其程序清单如下:CREATE UNIQUE CLUSTERED IN

42、DEX number_indON employees (number)为表employees创建了一个复合索引,其程序清单如下:create index employees_cpl_indon employees(name,age)withpad_index,fillfactor=507、查看、修改和删除索引利用企业管理器查看、修改和删除索引用系统存储过程查看和更改索引名称使用Transact-SQL语句中的DROP INDE麻令删除索 引企业管理器查看、修改和删除索引要删除索引,可以在企业管理器中,从管理索引对话框中或 者表的属性对话框中,选择要删除的索引,单击“删除”按钮, 即可删除索引。

43、例子6-2 :更改employees表中的索引employees_name_index名称为 employees_name_ind,其程 序清单如下:Exec sp_rename 'employees.employees_name_index 'employees_name_ind' ,'index '8、使用DROP INDE渝令删除索引当不再需要某个索引时,可以将其删除,DROP INDEX命令可以删除一个或者多个当前数据库中的索引,其语法 形式如下:DROP INDEX 'table.index | view.index',n ft

44、®, DROP INDEX令不能删除由 CREATE TABLE者 ALTERTABL的令创建的主键或者唯一性约束索引,也不能删除系统表中 的索引。授课班级06软件技术1、2授课时间2007.11.7授课题目(教学章节或主题):创建和使用索引授课类型机房实训教材分析:教材给定了相应的索引操作,学生根据实训内容,熟练掌握索引的基本操作,通过实训完成索引的各种应用。教学目的与要求:1、理解索引的基本概念。2、掌握索引的基本操作。3、掌握优化索引的应用。重点与难点:重点:索引的应用。难点:索引的实现。教学内容与过程(设想、方法、手段)学生到机房进行上机实训I,教师进行指导。思考题、讨论题、

45、作业学生完成相应实训参考资料(含参考书、文献等):SQL Server 2000数据库管理与开发 耿文兰 主编 电子工业出版社SQL SERVER程起步王宏泰译人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社授课班级06软件技术1、2授课时间2007.11.12授课题目(教学章节或主题): 约束、默认和数据完整性授课类型多媒体教材分析:主要讲解了数据库中数据完整性的基本概念,约束、默认基本应用。教学目的与要求:1、理解数据完整性的基本概念2、掌握约束、默认的基本应用3 、掌握数据完整性的综合应用重点与难点:重点:约束、默认的应用。难点:参照完整性的建立。教学

46、内容与过程(设想、方法、手段)采用多媒体教学方式,理论与实践结合,用具体的例子来讲解约束、默认、 的具体应用。思考题、讨论题、作业:习题4、5、6参考资料(含参考书、文献等):SQL Server 2000数据库管理与开发耿文兰 主编 电子工业出版社SQL SERVER程起步王宏味译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社教学内容与过程课后分析一、规则与默认1、规则:为实施列或用户自定义数据类型的域完整性提供的一种机制,用来控制字段和用户自定义数据类型中所存储的值。必须先定义再和字段或用户用定义数据类型绑定格式:创建规则create rule 规则

47、名as规则表达式注:变量进行比较删除规则 drop rule 规则名绑定规则sp_bindrule规则名,'对象,futureonly对象:1、表名.列名2、自定义数据类型futureonly只把规则应用于数据类型,而不影响以前采用该数据类型的列,仅影响以后采用该数据类型的列取消绑定sp_unbindrule 对象futureonly2、创建默认(给字段指定缺省值)create default 缺省名as 常量删除默认drop default 默认名绑定默认sp_bindefault 默认名,'对象'futureonly取消绑定 sp_unbindefault 对象fu

48、tureonly二、数据完整性1、定义:数据完整性保证了在数据库中存储数据的一致性和正确性。2、分类实体完整性域完整性参照完整性实体完整性:保证每一行都能被由称为主键的属性来标识 域完整性:保证在效范围内的值才能存储到相应列中引用完整性:确保外键的值必须与相关的主键相匹配用户定义完整性:由用户指定的一组规则3、实现数据完整性的主要方式是约束主键约束primary key 确保字段值不重复不为NULL唯一约束unique确保字段值不重复外键约束foreign key确保字段值必须来自于指定表检查约束check确保字段值的取值范围缺省约束default给相应字段提供默认值创建约束的层次:列层、表层

49、注:约束即可在创表时创建,也可在已存在的表上添加授课班级06软件技术1、2授课时间2007.11.14授课题目(教学章节或主题):创建并使用约束和默认值对象授课类型机房实训教材分析:讲解了数据库中参照完整性的应用及约束、默认的基本应用。教学目的与要求:1、理解约束、默认的基本概念。2、掌握默认的基本操作。3、掌握数据库完整性的应用。重点与难点:重点:约束、默认、的应用。难点:参照完整性的实现。教学内容与过程(设想、方法、手段)学生到机房进行上机实训1,教师进行指导。思考题、讨论题、作业学生完成相应实训参考资料(含参考书、文献等):SQL Server 2000数据库管理与开发耿文兰 主编 电子

50、工业出版社SQL SERVER程起步王宏味译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社授课班级06软件技术1、2授课时间2007.11.19授课题目(教学章节或主题): 存储过程和触发器的建立授课类型多媒体教材分析:主要讲解了存储过程的建立、修改和删除等基本应用。教学目的与要求:1、掌握存储过程的建立。2、掌握存储过程的修改和删除。重点与难点:重点:存储过程的建立难点:带参数存储过程的应用。教学内容与过程(设想、方法、手段)采用多媒体教学方式,理论与实践结合,熟悉掌握存储过程的建立和应用。思考题、讨论题、作业:习题参考资料(含参考书、文献等):SQL

51、 Server 2000数据库管理与开发 耿文兰 主编 电子工业出版社SQL SERVER程起步王宏味 译 人民邮电出版社SQL Server 2000数据库开发从零开始袁鹏飞 人民邮电出版社教学内容与过程课后分析、存储过程1、存储过程的概念是一组预编译好的完成特定功能的 SQL语句是存储在服务器上的一个对象可通过对象名来调用2、优点:提高性能减轻网络阻塞可进行模块化程序编写保证系统的安全性3、过程的类型:用户定义的存储过程系统存储过程(名字以sp_开头)临时存储过程(名字以#开头)远程存储过程扩展存储过程(名字以xp_开头)4、在SQL Server中,可以使用三种方法创建存储过程:使用创建

52、存储过程向导创建存储过程。利用SQL Server企业管理器创建存储过程。使用Transact-SQL语句中的CREATE PROCEDURE创建 存储过程。5、创建存储过程创建存储过程时,需要确定存储过程的三个组成部分:所有的输入参数以及传给调用者的输出参数。操作语句,包括调用其它存储过程的语句。返回给调用者的状态值,以指明调用是成功还是失败。企业管理器创建存储过程用命令创建存储过程创建格式:create procedure 过程名asbeginsql 语句组end执行格式:execute 过程名存储过程的参数格式:create procedure 过程名 parameter 类型= 缺省值

53、outpu皿As sql语句组6、查看和修改存储过程可供使用的系统存储过程及其语法形式如下:sp_help :用于显示存储过程的参数及其数据类型sp_help objname= name参数name为要查看的存储过程的名称。sp_helptext :用于显示存储过程的源代码sp_helptext objname= name参数name为要查看的存储过程的名称。sp_depends:用于显示和存储过程相关的数据库对象sp_depends objname=' object '参数object为要查看依赖关系的存储过程的名称。sp_stored_procedures :用于返回当前数据库中的存储过程列 表7、修改存储过程ALTERPROCEDUREprocedure_name;numbe门parameterdata_typeVARYING=defaultOUTPUT儿nWITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTIONFORREPLICATIONASsql_state

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论