版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档数据库原理及应用- SQL Server 2000 陈学进 于 2010年三月实验指导书 实验一 用E-R图设计数据库1. 实验目的1) 熟悉E-R模型的基本概念和图形的表示方法。2) 掌握将现实世界的事物转化成E-R图的基本技巧。3) 熟悉关系数据模型的基本概念。4) 掌握将E-R图转化成关系表的基本技巧。2. 实验内容1) 根据需求确定实体,属性和联系。2) 将实体,属性和联系转化为E-R图。3) 将E-R图转化为表。3. 实验步骤1) 设计能够表示出班级与学生关系的数据库。确定班级实体和学生实体的属性。确定班级和学生之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出
2、班级与学生关系的E-R图。将E-R图转化为关系模式,写出各关系模式并标明各自的主码或外码。2) 设计能够表示出顾客与商品关系的数据库。确定顾客实体和商品实体的属性。确定顾客和商品之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出顾客与商品关系的E-R图。将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。3) 设计能够表示学校与校长关系的数据库。确定学校实体和校长实体的属性。确定学校和校长之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出学校与校长关系的E-R图。将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。4) 设计能够表示出房地
3、产交易中客户,业务员和合同三者之间关系的数据库。 确定客户实体,业务员实体和合同实体的属性。确定客户,业务员和合同三者之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出客户,业务员和合同三者关系E-R图。将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。5) 学生之间相互交流各自设计的数据库。实验二 确定表中的关键字1. 实验目的1) 正确理解候选关键字,主关键字,组合关键字,外关键字的基本概念。2) 能够正确判断给定的表中各种类型的关键字。3) 在设计数据库时能正确指定各种类型的关键字,知道如何实施数据完整性。2. 实验内容1) 复习候选关键字,主关键字,外关键
4、字,组合关键字以及数据完整性的基本概念。2) 在给出的部门表和员工表中能正确标识出各种类型的关键字。3. 实验步骤1) 写出候选关键字,主关键字,组合关键字,外关键字,实体完整性,域完整性,参照完整性的定义。已知部门表和员工表分别见表2-1和表2-2 表2-1部门表部门代码部门名负责人地点0001生产部李华江浙江杭州0002销售部张丽浙江宁波0003市场部王欣浙江温州 表2-2员工表员工代码姓名家庭住址联系电话邮政编码部门代码200001王华杭州869609863100060001200002李想富阳854387693100100003200003张丽杭州6789354231001700022
5、00004李华江萧山8284987331010100012) 确定部门表和员工表中的候选关键字,并陈述理由。3) 选择部门表和员工表的关键字。4) 在部门表和员工表的结构中标注主关键字。5) 在员工表中确定可能的组合关键字,并陈述理由。6) 确定在部门表和员工表中共有的属性。7) 指出哪个表中的属性是外关键字。8) 确定哪个表是主表,哪个表是从表。9) 部门表和员工表是如何通过关键字实施数据完整性的。实验三 关系规范化1. 实验目的1) 了解函数依赖的基本概念。2) 能正确判断某一关系是属于第几范式。3) 掌握规范化范式的方法。2. 实验内容1) 复习函数依赖,数据规范化,范式的基本概念以及各
6、级范式的判别标准。2) 判断给定的表满足哪级范式的条件。3) 将给定的表转换成满足特定等级范式条件的表。3. 实验步骤1) 写出函数依赖,数据规范化,范式的定义以及各级范式的判别标准。2) 有表3-1所示的项目表1,判断其是否满足第一范式的条件,并说明理由。表3-1 项目表1项目代码职员代码部门累计工时间P27E101系统集成部90P51101P2060P27E305销售部109P2298P51E508行政办公室NULLP27723) 有表3-2所示的项目表2,判断其是否满足第二范式的条件,并说明理由。 表3-2 项目表2项目代号职员代码部门累计工作时间P27E101系统集成部90P27E30
7、5财务部10P51E508行政办公室NULLP51E101系统集成部101P20E101系统集成部60P27E508行政办公室724) 有表3-3所示的职员表,判断其是否满足第三范式的条件,并说明理由。 表3-3 职员表职员代码部门部门负责人代码E101系统集成部E901E305财务部E909E402销售部E909E508行政办公室E908E607财务部E909E608财务部E9095) 有表3-4所示的项目表3,判断其是否满足第三范式的条件,并说明理由。 表3-4 项目表3项目代码职员代码职员姓名累计工作时间P2E1李华玉48P5E2陈家伟100P6E3张勤15P3E4谢成权2505P5E4
8、谢成权75P5E1李华玉406) 将项目表1转换成满足第一范式条件的表。7) 将项目表2转化成满足第二范式条件的表。8) 将职员表转换成满足第三范式条件的表。9) 将项目表3转换成满足BCNF条件的表。10) 非规范化数据带来的不利影响是什么?实验四 创建SQL Server 2000数据库和表1. 实验的目的1) 熟悉企业管理器环境。2) 掌握创建数据库和表的操作。2. 实验内容1) 熟悉SQL Server 2000 企业管理器环境。2) 创建XSCJ数据库。3) 在XSCJ数据库中创建学生情况表XSQK,课程表KC,学生成绩表XS_KC。4) 在XSQK、KC、XS_KC表中输入数据。3
9、. 实验步骤1) 启动SQL Server企业管理器,打开“SQL Server Enterprise Mananger”窗口,并在左边的目录树结构中选择“数据库”文件夹。2) 选择“操作”菜单中的“新建数据库”命令,打开 “数据库属性” 对话框,并在 “名称”框内输入数据库名称XSCJ。3) 单击“确定”按钮,完成XSCJ数据库的创建。4) 打开刚才创建的 “XSCJ” 文件夹,并在“SQL Server Enterprise Mananger”窗口的右边窗口中选择“表”对象。5) 选择“操作”菜单中的“新建表”命令,打开SQL Server的表编辑器窗口。 6) 根据表4-1所示的表结构增
10、加新列。 表4-1 学生情况表XSQK的结构列名数据类型长度是否允许为空值默认值说明学号Char6N主键姓名Char8N性别Bit1N男1,女0出生日期smalldatetime4N专业名Char10N所在系Char10N联系电话char11Y7) 点击快捷工具栏上的快捷按钮,在弹出的“选择名称”对话框中输入表名XSQK,然后单击“确定”按钮,关闭表编辑器窗口,完成新表的创建。8) 打开“表”对象,在“SQL Server Enterprise Manager”窗口的右边窗口中选择刚才创建的“XSQK”表。9) 选择“操作”菜单中的“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。
11、10) 输入的学生情况数据记录见表4-2。学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147020102方露露01981-1-15计算机应用计算机88297147020103俞奇军11980-2-20信息管理计算机88297151020104胡国强11980-11-7信息管理计算机88297151020105薛冰11980-7-29水利工程水利系88297152020201秦盈飞01981-3-10电子商务经济系88297161020202董含静01980-9-25电子商务经济系88297062020203陈伟11980-8-7电子商务经
12、济系88297171020204陈新江11980-7-20房建水利系88297171 表4-2 学生情况记录11) 同理建课程表KC,表的结构见表4-3所示,表的内容见表4-4所示。表4-3 课程表KC的结构列名数据类型长度是否允许为空值默认值说明课程号Char3N主键课程名Char20N教师Char10开课学期Tinyint1只能1-6学时Tinyint160学分Tinyint1N 表4-4 课程表记录课程号课程名教师开课学期学时学分101计算机原理陈红2453102计算方法王颐3453103操作系统徐格2604104数据库原理及应用应对刚3755105网络基础吴江江4453106高等数学孙
13、中文1906107英语陈刚1906108VB程序设计赵红韦3705 12) 同理建成绩表XS_KC,表的结构见表4-5所示,表的内容见表4-6所示。表4-5 成绩表XS_KC的结构列名数据类型长度是否允许为空值默认值说明学号Char6N外键课程号Char3N外键成绩Tinyint10-100之间表4-6 成绩表XS_KC的记录学号课程号成绩02010110185020101102870201011078802010210158020102102630201041077602020210355020202108800202031035702020410371实验五 查询数据库1实验目的1) 熟悉
14、SQL Server 2000查询分析器环境。2) 掌握基本的SELECT查询及其相关子句的使用。3) 掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。2实验内容1) 启动SQL Server 2000 查询分析器环境。2) 涉及多表的简单查询。3) 涉及多表的复杂查询。3. 实验步骤1) 启动SQL Server查询分析器,打开“SQL查询分析器”窗口。2) 在“SQL查询分析器”窗口中选择要操作的数据库,如“XSCJ”数据库。3) 在KC表中查询学分低于3的课程信息,并按课程号升序排列。 在查询命令窗口中输入以下SQL查询命令并执行: SELECT * FROM KC WH
15、ERE KC.学分<3 ORDER BY 课程号4) 在XS_KC表中按学号分组汇总学生的平均分,并按平均分的降序排列。SELECT 学号,平均分=AVG(成绩) FROM XS_KC GROUP BY 学号 ORDER BY 平均分 DESC 5) 在XS_KC表中查询选修了3门以上课程的学生学号。SELECT 学号 FROM XS_KC GROUP BY 学号HAVING COUNT(*)>36) 按学号对不及格的成绩记录进行明细汇总。SELECT 学号,课程号,成绩 FROM XS_KCWHERE 成绩<60ORDER BY 学号COMPUTE COUNT(成绩)BY
16、学号7) 分别用子查询和连接查询,求107号课程不及格的学生信息。用子查询:SELECT 学号,姓名,联系电话 FROM XSQKWHERE 学号 IN( SELECT 学号 FROM XS_KC WHERE 课程号=107AND 成绩<60)用连接查询:SELECT 学号,姓名,联系电话 FROM XSQK JOIN XS_KC ON XSQK.学号=XS_KC.学号WHERE课程号=107AND 成绩<608) 用连接查询在XSQK表中查询住在同一寝室的学生,即其联系电话相同SELECT A.学号,A.姓名,A.联系电话 FROM XSQK A JOIN XSQK BON A.
17、联系电话=B.联系电话 WHERE A.学号!=B.学号请自已完成以下的查询:9) 查询XSQK表中所有的系名。10) 查询有多少同学选修了课程。11) 查询有多少同学没有选课。12) 查询与杨颖同一个系的同学姓名。13) 查询选修了课程的学生的姓名、课程名与成绩。14) 统计每门课程的选课人数和最高分。15) 统计每个学生的选课门数和考试总成绩,并按选课门数的降序排列。实验六 创建和使用视图1实验目的1) 掌握视图的创建、修改和删除。2) 掌握使用视图来访问数据。2实验内容1) 创建一个简单的视图,查询101号课程不及格的学生信息。2) 修改简单视图,查询107号课程成绩介于70-90的学生
18、信息。3) 使用视图访问数据。4) 删除所创建的视图。3实验步骤1) 启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。2) 选择要创建视图的数据库文件夹,如“XSCJ”文件夹,并在右边的对象窗口中选择其中的“视图”对象。3) 选择“操作”菜单中的“新建视图”命令,打开SQL Server的视图设计窗口。4) 在“数据源关系图窗口”中单击鼠标右键,打开“添加表”窗口,添加XSQK表和XS_KC表。5) 选择XSQK表的学号和姓名列,选择XS_KC表的课程号和成绩列,作为视图的显示列。6) 设置学号列的排序类型为升序。7) 设置查询条件:
19、先在课程号行的“准则”列设置条件为“=101”,然后在成绩行的“准则”列设置条件为“<60”。8) 点击快捷工具栏上的快捷按钮,在弹出的“另存为”对话框中输入视图名,如“v_101不及格”,然后单击“确定”按钮,关闭视图设计窗口,完成视图的创建。9) 在“v_101不及格”视图上单击鼠标右键,在弹出的快捷菜单中选择“设计视图”命令,修改视图定义。10) 添加数据源KC表,以显示107号课程的课程名称。打开“添加表”窗口,选择“KC” 表,系统自动为KC表和XS_KC表建立基于课程号的内连接。11) 选择KC表中的课程名列。12) 添加查询条件:修改课程号行中“准则”列的条件为“=107”
20、;修改成绩行中“准则”列的条件为“>=70”,并复制该行,去掉“输出”列中的复选,并修改“准则”列的条件为“<=90”。13) 点击快捷工具栏上的快捷按钮,关闭视图设计窗口,保存对视图的修改。请自已创建以下视图:14) 创建一个简单视图,查询“计算机系”学生的信息。15) 创建一个简单视图,统计每门课程的选课人数和最高分。16) 创建一个复杂视图,查询与“俞奇军”住在同一寝室的学生信息,即其联系电话相同。17) 创建一个复杂视图,查询选修了课程的同学的姓名,课程名及成绩。实验七 创建和使用索引1实验目的1) 熟悉SQL Server 2000 索引管理器。2) 掌握索引的创建和使用
21、。3) 掌握对索引的优化操作。2实验要求1) 使用索引管理器为XS-KC表创建索引IX-XS-KC。2) 使用强制索引查询数据。3) 用索引优化向导优化索引。3实验内容1) 用索引管理器创建XS_KC表的索引IX_XS_KC。选择要创建索引的数据库文件夹,如“XSCJ”文件夹,并在右边的对象窗口中选择并打开其中的“表”对象。选择所要创建索引的表,如“XS_KC”表,并从“操作”菜单中选择“所有任务”子菜单下的“管理索引”命令,打开SQL Server 的索引管理器窗口。单击其中的“新建”按钮,创建新的索引,并为其设置相应的属性。为XS_KC 表创建一个基于“课程号”列和“成绩”列的索引IX_X
22、S_KC,其中课程号列按升序排列,成绩列按降序排列。首先,单击“新建”按钮,此时系统打开“新建索引”口,在其中的“列名”列表框中选择“课程号”项。再选择“成绩”项,并选中其后的“排列次序(DESC)”项,使成绩列按降序排列。接着,选择“填充因子”项,其值保留系统默认的80,并选中“填充索引”选项,使索引中间页具有与叶级页相同的填充程度。最后,将索引名设置为IX_XS_KC。单击“确定”按钮,完成新索引的创建。回到索引管理器窗口。2) 强制使用刚才创建的索引查询数据。启动SQL Server查询分析器,打开“SQL 查询分析器”窗口,并在其右上脚的下拉框中选择要操作的“XSCJ”数据库。强制使用
23、“IX_XS_KC索引查询所有课程的及格成绩记录。在查询命令窗口中输入以下SQL查询命令并执行:SELECT 学号 ,课程表, 成绩FROM XS_KCWITH (INDEX (IX_XS_KC) )WHERE 成绩>=60观察一下显示出来的数据是否有序3) 使用索引优化向导优化索引。索引优化向导可以根据给定的工作负荷,通过使用查询优化器分析该工作负荷的查询。此时为数据库推荐最佳索引组合,而为了记录工作负荷,必须使用SQL事件探查创建一个跟踪记录工作负荷。启动SQL Server事件探查器,打开“SQL事件探查”窗口。选择“文件“菜单中”新建“子菜单下的”跟踪“命令”打开“跟踪属性”对话
24、框,新建一个跟踪。设置跟踪名为“INDEX_TRACE”,把跟踪保存为负荷文件“INDEX_TRACE”。然后单击运行按纽开始跟踪。切换到SQL查询分析器窗口,在其中的查询命令中输入以下SELECT查询语句: SELECT A.学号,A.姓名,D.课程名,C.成绩,A.联系电话FROM XSQK A JOIN XSQK B ON A.联系电话=B.联系电话JOIN XS_KC C ON A.学号=C.学号 JOIN KC D ON D.课程号=C.课程号WHERE A.姓名='俞奇军' and B.姓名!='俞奇军'切换回SQL事件探查起窗口,此时在窗口中列出了
25、刚刚执行的查询语句的跟踪信息。单击快捷工具栏的快捷键按钮暂停跟踪。其中,注意列的含义如下:1CPU列:表示查询所占用的CPU时间,单位为毫秒。2Duration列:表示查询执行的时间 ,单位为毫秒。3Reads列:表示查询所引起服务器执行的物理磁盘读取次数。4Writes列:表示查询所引起服务器执行的物理磁盘写入次数。选择“工具”菜单中的“索引优化向导”命令,打开“索引优化向导”对话框。开始优化索引。切换到SQL事件探查窗口,然后点击快捷工具栏上的快捷按钮继续跟踪。切换到SQL查询分析器窗口,再次执行刚才的SELECT查询语句。切换回SQL事件探查起窗口,此时在窗口中又列出了优化索引执行同样的
26、查询语句的跟踪信息。我们可以看到,优化索引后,读盘次数减少了,执行时间变短了。比较图中两次查询的执行情况,很显然,经过索引优化后,查询性能有了很大的提高。如果全换成大型表,优化效果将更加明显。单击快捷工具栏上的快捷按钮停止跟踪,并关闭“SQL事件探查窗口”。实验八 创建并使用约束和默认值对象1. 实验目的1) 掌握约束的定义和删除操作。2) 掌握默认值对象的定义和删除。2实验内容1) 使用命令删除XSQK表中性别的约束,然后再创建。2) 使用界面方式创建默认值对象,并绑定到列,然后再删除。3实验步骤1)删除并重建XSQK表中性别的约束。打开“SQL 查询分析器”窗口,选择要操作的数据库,如“X
27、SCJ”数据库。在命令窗口中输入以下SQL命令并执行,删除XSQK表中性别列的约束。ALTER TABLE XSQKDROP CONSTRAINT CK_XSQK_性别在命令窗口中输入以下SQL命令并执行,查询创建刚才删除的性别列约束,使性别只能取值为1(表示男)或者0(表示女)。ALTER TABLE XSQK ADD CONSTRAINT CK_ XSQK_性别CHECK (性别=1 OR性别=0)2)定义新的默认值对象。启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。选择要创建默认值对象的数据库文件夹,如“XSCJ”文件夹,并在
28、右边的对象窗口中选择其中的“默认”对象。选择“操作”菜单中的“新建默认”命令,打开“默认属性”对话框,并输入名称“DFO_出生日期”和值 1980-1-1注意:1980-1-1前后有单引号()括起来,表示其为日期类型。单击“确定”按钮,完成默认值对象的定义。3)将默认值对象绑定到XSQK表的出生日期列。打开“默认”对象,并选中刚才定义的默认值对象DFO_出生日期。选择“操作”菜单中的“属性”命令,打开“默认属性”对话框。单击“绑定列”按钮,打开“将默认值绑定到列”的对话框。单击“确定”按钮,完成到列的绑定。4)使用值对象为新插入行的出生日期列设置值。在对象窗口中选择并打开其中的“表”对象,选中
29、XSQK表。选择“操作”菜单中“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。在表中插入一行新记录,其中出生日期列不填,其值由刚才绑定的默认值对象设定。如果在设置默认值对象属性时,其值前后没有加单引号(),那么在插入出生日期列的默认值时,该值就不会是“1980-1-1”了。关闭数据记录窗口。5)取消绑定并删除默认值对象。选择并打开“默认”对象,选中“DFO_出生日期”默认对象。选择“操作”菜单中的“属性”命令,打开“默认属性”对话框。单击“绑定列”按钮,打开“将默认值绑定到列”对话框。单击“确定”按钮,取消到列的绑定,关闭“默认属性”对话框。选择“操作”菜单中的“删除”命令,打开
30、“除去对象”对话框。单击“全部除去”按钮,确定删除。实验九 实现数据完整性1实验目的1) 掌握域完整性的实现方法。2) 掌握实体完整性的实现方法。3) 掌握参照完整性的方法。2实验内容1) 使用界面方式创建规则对象,并绑定到列,实现域完整性。2) 为表添加一个标识列,实现实体完整性。3) 为两表建立关联,实现参照完整性。3实验步骤1) 实现域完整性启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。选择要创建规则对象的数据库文件夹,并在右边的对象窗口中选择其中的“规则”对象。选择“操作”菜单中的“新建规则”命令,打开“规则属性”对话框。设
31、置形如“(区号)电话号码”的联系电话格式检查规则,单击“确定”按钮,完成规则对象的定义。打开“规则”对象,并选中刚才定义的规则对象RO_联系电话格式。选择“操作”菜单中的“属性”命令,打开“规则属性”对话框。单击“绑定列”按钮,打开“将规则绑定到列”对话框,完成到列的绑定,关闭“规则属性”对话框。在对象窗口中选择并打开其中的“表”对象,选中XSQK表并打开。在表中分别插入两行新记录,其中一行的联系电话格式为指定的格式,另一行的联系电话格式为非法格式。当插入第一行时,系统成功地插入了新数据行,但无信息返回;而在插入第二行时系统提示错误信息,拒绝接受非法格式的联系电话,从而保证了域完整性。单击“确
32、定”按钮,取消插入,并关闭表的数据记录窗口。2)实现实体完整性在对象窗口中选择并打开其中的“表”对象,选中KC表。选择“操作”菜单中的“设计表”命令,打开表编辑器窗口。添加一个标识列,种子值为1,递增量也为1。点击快捷工具拦上的快捷按钮,完成标识列的添加,然后关闭编辑窗口。选中KC表并打开表的数据记录窗口。可以看到,系统自动为每行的标识列填充了值,并从1开始,依次递增,这样,表中的每一数据行都可以由标识列唯一标识,实现了实体完整性。关闭表的数据记录窗口。3)实现参照完整性在对象窗口中选择打开其中的“表”对象,选中XS_KC表。先择“操作”菜单中的“设计表”命令,打开表编辑器窗口。点击快捷工具拦
33、上的快捷按钮,打开“属性”对话框的“关系”选项卡。为XSQK表和XS_KC表建立基于学号列的关系。选中XSQK表,并选择“操作”菜单中“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。将表中的值为“020101”的学号都修改为“020111”。由于XSQK表中不存在值为“020111”的学号,所以系统提示错误信息,拒绝接受不存在的学号,从而保证了参照完整性。单击“确定”按钮,取消修改,并关闭表的数据记录窗口。实验十 实现存储过程1实验目的1) 掌握用户存储过程的创建操作。2) 掌握用户存储过程执行操作。3) 掌握用户存储过程的删除操作。2实验内容1) 创建带输入参数的存储过程和嵌套
34、调用的存储过程。2) 执行所创建的存储过程。3) 删除所有新创建的存储过程。3实验步骤1) 创建带输入参数的存储过程。启动SQL Server查询分析器,打开“SQL查询分析器”窗口。选择要操作的数据库,如“XSCJ”数据库。在查询命令窗口中输入创建存储过程的CREATE PROCEDURE语句。这里,我们创建一个带输入参数的存储过程proc_XSQK1,其中的输入参数用于接收课程号,默认值为“101”,然后在XS_KC表中查询该课成绩不及格的学生学号,接着在XSQK表中查找这些学生的基本信息,包括学号、姓名、性别和联系电话信息,最后输出。点击快捷工具栏上的快捷铵钮,对输入的CREATE PR
35、OCEDURE 语句进行语法分析。如果有语法错误,则进行修改,直到没有语法错误为止。点击快捷工具拦上的快捷按钮,执行CREATE PROCEDURE语句。2) 创建带嵌套调用的存储过程。在查询命令窗口中输入创建存储过程的CREATE PROCEDURE语句。这里,我们创建一个带嵌套调用的存储过程proc_XSQK2。该存储过程也有一个输入参数,它用于接收授课教师姓名,默认值为“王颐”,然后嵌套调用存储过程proc_课程号,输出其所授课程的课程号,接着用此课程号来完成上一部分实验中所创建的存储过程proc_XSQK1的功能。相应的CREATE PROCEDURE语句如下:DECLARE 课程号c
36、har(3)-嵌套调用存储过程proc_课程号EXECUTE proc_课程号 授课老师,课程号 OUTPUT-查询指定课程成绩不及格的学生的基本信息SELECT XSQK.学号,XSQK.姓名,XSQK.性别,XSQK.联系电话FROM XSQK ,XS_KCWHERE XS_KC.课程号=课程号AND XS_KC.成绩<60AND XSQK.学号=XS_KC.学号PROC_课程号的存储过程如下:CREATE PROCEDURE PROC_课程号教师 CHAR(10)=王颐,课程号码 CHAR(3) OUTPUTASSELECT 课程号码=课程号 FROM KCWHERE KC.教师=
37、教师 点击快捷工具栏上的快捷按钮,对输入的CREATE PROCEDURE 语句进行语法分析。如果有语法错误,则进行修改,直到没有语法错误为止。点击快捷工具栏上的快捷按钮,执行CREATE PROCEDURE语句。3)执行所创建的二个存储过程在查询命令窗口中输入以下EXECUTE语句,执行存储过程proc_XSQK1。 EXECUTE proc_XSQK1 101点击快捷工具拦上的快捷按钮,执行存储过程。在查询命令窗口中输入以下EXECUTE语句,执行存储过程proc_XSQK2。 EXECUTE proc_XSQK2 DEFAULT点击快捷工具拦上的快捷按钮,执行存储过程。3) 删除新建的存
38、储过程在查询命令的窗口中输入DROP PROCEDURE语句和所有新创建的存储过程名。 DROP PROCEDURE Proc_XSQK1,proc_XSQK2点击快捷工具上的快捷按钮,删除存储过程。实验十一 实现触发器1. 实验目的1) 掌握触发器的创建、修改和删除操作。2) 掌握触发器的触发执行。3) 掌握触发器与约束的不同。2. 实验要求1) 创建触发器。2) 触发器执行触发器。3) 验证约束与触发器的不同作用期。4) 删除新创建的触发器。3. 实验内容1) 创建触发器启动SQL Server 查询分析器,打开“SQL查询分析器”窗口,选择要操作的数据库,如“XSCJ”数据库。在查询命令
39、窗口中输入以下CREATE TRIGGER语句,创建触发器。为XS_KC表创建一个基于UPDATE操作和DELETE操作的复合型触发器,当修改了该表中的成绩信息或者删除了成绩记录时,触发器被激活生效,显示相关的操作信息。-创建触发器CREATE TRIGGER tri_UPDATE_DELETE_XS_KCON XS_KCFOR UPDATE,DELETEAS-检测成绩列表是否被更新IF UPDATE(成绩)BEGIN-显示学号、课程号、原成绩和新成绩信息SELECT INSERTED.课程号,DELETED.成绩AS原成绩,INSERTED.成绩AS原成绩 FROM DELETED ,INS
40、ERTEDWHERE DELETED.学号=INSERTED.学号END-检测是更新还是删除操作ELSE IF COLUMNS_UPDATED( )=0BEGIN-显示被删除的学号、课程号和成绩信号SELECT 被删除的学号=DELETED.学号,DELETED.课程号,DELETED.成绩AS原成绩FROM DELETEDENDELSE-返回提示信息PRINT 更新了非成绩列!点击快捷工具栏上的快捷按钮,完成触发器的创建。2) 触发触发器在查询命令窗口中输入以下UPDATE XS_KC语句,修改成绩列,激发触发器。UPDATE XS_KCSET成绩=成绩+5WHERE 课程号=101在查询命
41、令窗口中输入以下UPDATE XS_KC语句修改非成绩列,激发触发器。UPDATE XS_KCSET 课程号=113WHERE 课程号=103在查询命令窗口中输入以下DELETE XS_KC 语句,删除成绩记录,激发触发器。DELETE XS_KC WHERE 课程号=1023) 比较约束与触发器的不同作用期在查询命令窗口中输入并执行以下ALTER TABLE 语句,为XS_KC表添加一个约束,使得成绩只能大于等于0且小于等于100。ALTER TABLE XS_KCADD CONSTRAINT CK_成绩CHECK(成绩>=0 AND成绩<=100)在查询命令窗口中输入并执行以下
42、UPDATE XS_KC语句,查看执行结果。UPDATE XS_KC SET成绩=120WHERE 课程号=108在查询命令窗口中输入执行以下UPDATE XS_KC 语句,查看执行结果。UPDATE XS_KCSET成绩=90WHERE 课程号=108从这部分实验中,我们可以看到,约束优先于触发器起作用,它在更新前就生效,以对要更新的值进行规则检查。当检查到与现有规则冲突时,系统给出错误消息,并取消更新操作。如果检查没有问题,更新被执行,当执行完毕后,再激活触发器。4) 删除新创建的触发器在查询命令窗口中输入DROP TRIGGER 语句,删除新创建的触发器。DROP TRIGGER tri
43、_UPDATE_DELETE_XS_KC点击快捷工具栏上的快捷按钮,删除触发器。*实验十二 实现事务和批1. 实验目的1) 了解事务的ACID属性。2) 掌握事务和批的工作原理。3) 了解事务处理与批处理。2. 实验内容1) 事务处理与批处理的关系。2) 如何把一个事务处理封闭在单个的批处理中。3) 用条件判断结构来实现。3. 实验步骤1) 把事务处理分散写进多个批处理通常不是一个好的设计思想。锁定问题会变得非常复杂,会带来可怕的性能干扰。2) 通常情况下,应该把一个事务处理封闭在单个的批处理中。下面还有一个更好的方法来编写这段程序:BEGIN TRANSACTINONINSERT PUBLI
44、SHERS(PUB_ID,PUB_NAME,CITY,STATE)VALUES(“1111”,“JOE AND MARYS BOOKS”,“NOTRTHERN PLAINS”,“IA”)IF ERROR=0BEGIN PRINT PUBLISHER INSERT WAS SUCCESSFUL CONTINUING。 UPDATE TITLES SET PUB_ID=1111 WHERE PUB_ID=1234 DELETE AUTHORS WHERE STATE=CACOMMIT TRANSACTIONENDELSEBEGIN PRINT PUBLISHER INSERT FAILEDROLL
45、ING BACK TRANSACTION ROLLBACK TRANSACTIONEND这个例子中最重要的一点在于事务处理属于一个简单的批处理了。*实验十三 检测死锁1实验目的1) 了解死锁的类型和其兼容性。2) 了解死锁发生的情况。3) 了解可锁定的资源。4) 了解死锁的一般处理过程。2实验内容1) 锁与并行查询执行相关的资源。2) 如何查看进程信息。3) 如何查看锁/对象信息。4) 如何处理死锁。3实验步骤1) 构造死锁,让锁现象发生。先构造一个可能造成锁表的代码如下:BEGIN TRANSACTIONINSERT publishers (pub_id,pub_name,city,stat
46、e)VALUES(“1111”,“Joe and Marys Books”,“Notrthern Plains”,“IA”)IF ERROR=0BEGIN PRINT Publisher insert failedrolling back transaction ROLLBACK TRANSACTIONEND下面的代码对同一个表执行简单的查询操作,具体代码如下:select * from titles;2)处理死锁的一般过程或步骤。Sp_who:提供关于当前Microsoft SQL Server用户和进程信息。如:列出全部当前进程。在SQL查询分析器的命令窗口中输入sp_whosp_lock
47、:报告有关锁的信息在SQL查询分析器的命令窗口中输入sp_lock spid1=从sp_who中查出的进程标识号在企业管理器中打开“管理”文件夹下的当前活动,查看进程信息。实验十四 实现安全管理1实验目的1) 了解SQL Server 2000 的身份验证方法。2) 掌握合法登录帐户的设置。3) 掌握数据库用户的设置。4) 掌握数据库角色的设置。5) 掌握用户的权限管理方法。2实验内容1) Windows和SQL Server2000身份验证的比较。2) 设置登录帐户。3) 设置数据库用户。4) 设置数据库角色。5) 设置数据库用户权限。3实验步骤1) 使用企业管理器选择和设置身份验证模式 打
48、开企业管理器,在“树”窗口中展开一个服务器组,然后选择希望设置身份验证模式的服务器。 在该服务器上单击鼠标右键,在弹出的菜单中选择命令“属性”,打开“属性”对话框。 在属性对话框中选择“安全性”选项卡,在“身份验证”区域中选择下列身份验证模式之一。· SQL Server和Windows:指定用户可以使用SQL Server身份验证和Windows身份验证连接到SQL Server。· 仅Windows:指定用户只能使用Windows身份验证连接SQL Server。 单击“确定”按钮,即可完成身份验证模式的选择和设置。 2) 使用企业管理器创建登录账户 打开企业管理器,展
49、开希望创建新的登录的服务器。 展开文件夹“安全性”,在登录节点上单击鼠标右键。 从弹出的菜单中选择“新建登录”,打开“新建登录”窗口。 在“新建登录”窗口的“常规”选项卡中进行如下配置:· 在“名称”文本框中输入一个SQL Server登录的账号名。· 选择一种登录模式。· 在“默认设置”区选择连接时默认的数据库XSCJ和语言。 在“新建登录”窗口的“数据库访问”选项卡,选择允许登录账户访问的数据库和分配给登录账户的数据库角色。 单击“确定”按钮,完成登录模式的创建。3) 使用企业管理器新建数据库用户 打开企业管理器,在树形目录中展开指定的数据库节点。 选中该数据库节点的下一级节点“用户”,单击鼠标右键,在弹出的菜单中选择“新建数据库用户”。4) 使用企业管理器创建数据库角色 打开企业管理器,在树形目录中展开指定的数据库节点。 选中该数据库节点的下一级节点“角色”,单击鼠标右键,在弹出的菜单中选择“新建数据库角色”。 在弹出的“数据库角色属性-新建角色”对话框中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农副产品购销合同(2024版)
- 《工程造价课件U》课件
- 中考地理中国的交通复习课件人教
- 毕设开题报告范文
- 2024版技术开发合作合同范例3篇
- 知识产权授权协议范本完整版
- 钢结构承包安全协议书
- 二零二四版医疗设备采购与维护合同3篇
- 《ie工作改善方法》课件
- 2024年度新建住宅小区物业服务管理合同
- 2024年世界职业院校技能大赛中职组“婴幼儿保育组”赛项考试题库-下(多选、判断题)
- 中华人民共和国学前教育法
- 《危大工程方案编制指南》解读
- 职业道德与法律(第一课)说课ppt课件
- 一年级数学上册解决问题例五说课稿
- IATF16949产品审核计划及检查表2020
- 规培护士培训计划.doc
- 星级饭店、酒店危险源辨识清单
- 清梳工序总结修
- 第4章 海水中二氧化碳-碳酸盐体系
- 学会沟通主题班会.ppt
评论
0/150
提交评论