[信息与通信]实验指导书_sqlserer_第1页
[信息与通信]实验指导书_sqlserer_第2页
[信息与通信]实验指导书_sqlserer_第3页
[信息与通信]实验指导书_sqlserer_第4页
[信息与通信]实验指导书_sqlserer_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、.Sql Sever2005数据库原理及应用实验指导书*; sql server 2005实验指导书目录实验1 通过E-R图设计关系数据模型3【实验目的】3【实验环境】3【实验内容】3实验2 确定表中的关键字4【实验目的】4【实验环境】4【实验重点及难点】4【实验内容】4实验3 规范化数据5【实验目的】5【实验环境】5【实验重点及难点】5【实验内容】5实验4 服务器的启动、暂停和停止7【实验目的】7【实验环境】7【实验重点及难点】7【实验内容】7实验5 创建并管理数据库11【实验目的】11【实验环境】11【实验重点及难点】11【实验内容】11实验6 创建表并输入数据12【实验目的】12【实验环

2、境】12【实验重点及难点】12【实验内容】13实验7 使用Select 语句查询数据(一)简单查询15【实验目的】15【实验环境】15【实验重点及难点】15【实验内容】15实验8 使用Select 语句查询数据(二)汇总查询17【实验目的】17【实验环境】17【实验重点及难点】17【实验内容】17实验9 使用Select 语句查询数据(三)连接查询和子查询19【实验目的】19【实验环境】19【实验重点及难点】19【实验内容】19实验10 创建视图并通过视图操作表数据20【实验目的】20【实验环境】20【实验重点及难点】20【实验内容】20实验11 使用规则实现数据完整性22【实验目的】22【实

3、验环境】22【实验重点及难点】22【实验内容】22实验12 使用 T-SQL编写程序24【实验目的】24【实验环境】24【实验重点及难点】24【实验内容】24实验13 使用触发器实现数据完整性26【实验目的】26【实验环境】26【实验重点及难点】26实验14 为用户设置权限29【实验目的】29【实验环境】29【实验重点及难点】29实验15导入导出数据30【实验目的】30【实验环境】30【实验重点及难点】30实验1 通过E-R图设计关系数据模型【实验目的】1) 熟悉E-R模型的基本概念和图形的表示方法。2) 掌握将现实世界的事物转化成E-R图的基本技巧。3) 熟悉关系数据模型的基本概念。4) 掌

4、握将E-R图转化成关系表的基本技巧。【实验环境】Sql server 2005【实验重点及难点】1) 根据需求确定实体、属性和联系。2) 将实体、属性和联系转化为E-R图。3) 将E-R图转化为表。【实验内容】(1) 设计能够表示出班级与学生关系的数据模型1) 确定班级实体和学生实体的属性和码。2) 确定班级和学生之间的联系,给联系命名并指出联系的类型。3) 确定联系本身的属性。4) 画出班级和学生关系的E-R图。5) 将E-R图转化为表,写出表的关系模式并标明各自的主键或外键。(2) 设计能够表示出顾客与商品关系的数据模型1) 确定顾客实体和商品实体的属性和码。2) 确定顾客和商品之间的联系

5、,给联系命名并指出联系的类型。3) 确定联系本身的属性。4) 画出顾客与商品关系的E-R图。5) 将E-R图转化为表,写出表达关系模式并标明各自的主键或外键。(3) 设计能够表示出学校与校长关系的数据模型1) 确定学校实体和校长实体的属性和码。2) 确定学校和校长之间的联系,给联系命名并指出联系的类型。3) 确定联系本身的属性。4) 画出学校与校长关系的E-R图。5) 将E-R图转化为表,写出表达关系模式并标明各自的主键或外键。(4) 设计能够表示出房地产交易中客户、业务员和合同三者之间的关系的数据模型1) 确定客户实体、业务员实体和合同的属性和码。2) 确定客户实体、业务员实体和合同之间的联

6、系,给联系命名并指出联系的类型。3) 确定联系本身的属性4) 画出客户实体、业务员实体和合同关系的E-R图5) 将E-R图转化为表,写出表达关系模式并标明各自的主键或外键实验2 确定表中的关键字【实验目的】1) 正确理解候选键、主键、组合键、外键的基本概念。2) 能够正确判断给定表中各种类型的键。3) 在设计数据库时能正确指定各种类型的键,知道如何实施数据的完整性。【实验环境】Sql server 2005【实验重点及难点】1) 复习候选键、主键、外键、组合键以及数据完整性的基本概念。2) 在给出的部门表和员工表中能正确标识出各种类型的键。【实验内容】1) 写出候选键、主键、组合键、外键、实体

7、完整性、域完整性、参照完整性的定义。2) 已知部门表和员工表如下所示: 部门表部门代码部门名负责人地点0001生产部李华江重庆荣昌县0002销售部张丽重庆渝中区0003市场部王欣重庆江北区员工表员工代码姓名家庭住址联系电话邮政编码部门代码200001王华重庆676909864011470001200002李想成都543876595087630003200003张丽上海678935422087610002200004李江华重庆7654987340005400013) 确定部门表和员工表中的候选键,并陈述理由。4) 在候选键中确定部门表和员工表的主键。5) 确定部门表和员工表中的共有属性。6) 指

8、出哪个表中的哪个属性时外键。7) 确定哪个表是主表,哪个表是从表。8) 回答问题:部门表和员工表是如何通过关键字实施数据完整性的?实验3 规范化数据【实验目的】1) 了解函数(数据)依赖的基本概念。2) 能正确判断某一关系属于第几范式。3) 掌握规范化数据的方法。【实验环境】Sql server 2005【实验重点及难点】1) 复习函数(数据)依赖、数据规范化、范式的基本概念以及各级范式的判别标准。2) 判断给定的表满足哪级别范式的条件。3) 将给定的表转换成特定等级的范式条件的表。【实验内容】1) 写出函数(数据)依赖、数据规范化、范式的定义以及各级范式的判别标准。2) 项目表1,判断是否满

9、足第一范式的条件并说明理由。项目表1项目代码职员代码部门累计工作时间P27P51P20E101系统集成部9010160P27P22E305销售部10998P51P27E508行政办公室NULL723) 项目表2,判断是否满足第二范式的条件并说明理由。项目表2项目代码职员代码部门累计工作时间P27E101系统集成部90P51E101系统集成部101P20E101系统集成部60P27E305销售部109P22E305销售部98P51E508行政办公室NULLP27E508行政办公室724) 职员表,判断其是否满足第三范式的条件并说明理由。职员表职员代码部门部门负责人代码E101系统集成部E901E

10、305财务部E309E402销售部E909E508行政办公室E908E607财务部E909E608财务部E9095) 项目表3,判断其是否满足BCNF的条件并说明理由。项目表3项目代码职员代码职员姓名累计工作时间P2E1李华玉48P5E2陈家伟100P6E3张勤15P3E4谢成全250P5E4谢成全75P5E1李华玉406) 将项目表1转换成满足第一范式条件的表。7) 将项目表2转换成满足第二范式条件的表。8) 将职员表转换成满足第三范式条件的表。9) 将项目表3转换成满足BCNF条件的表。10) 回答问题:规范化数据带来的不利影响是什么?实验4 服务器的启动、暂停和停止【实验目的】 1) 熟

11、悉SQL Server 2005 配置管理器。 2) 掌握服务器的启动方法。 3) 掌握服务器的暂停方法。4) 掌握服务器的停止方法。【实验环境】Sql server 2005【实验重点及难点】利用SQL Server配置管理器实现服务器的启动、暂停和停止。【实验内容】 实训1 服务器管理启动,暂停和停止服务的方法很多,这里主要介绍SQL Server 配置管理器完成这些操作,其操作步骤如下:1) 单击“开始”-“Microsoft SQL Server 2005”-“配置工具”,选择“SQL Server Configuration Manager”,打开SQL Setver配置管理器,如图

12、2-52所示。单击“SQL Server 2005服务”选项,在右边的对话框里可以看到本地所有的SQL Server服务,包括不同实例的服务,如图2-53所示。2) 如果要启动、停止、暂停SQL Server服务的话,鼠标指向服务名称,单击右键,在弹出的快捷键菜单里选择“启动”、“停止”、“暂停”即可。实训2 服务器注册 服务器注册主要为注册本地或者远程SQL Server服务器。打开SQL Server 2005下Management Studio,进行服务器注册。注册步骤如下:图2-52 SQL Server 配置服务管理器(一)图2-53 SQL Server 配置管理器(二)1) 在视

13、图菜单中单击“已注册的服务器”菜单选项显示出已注册的服务器,如图2-54所示。图2-54 已注册服务器2) 在右上角已注册的服务器中,选择注册类型进行相应服务类型注册。3) 在选定的服务类型的树型架构的根部单击鼠标右键,选择“新建”菜单下面的“服务器组”进行组的建立,如图2-55所示。图2-55 选择服务器组菜单4) 输入服务器组名称,单击保存即可,如图2-56所示。图2-56 新建服务器组5) 在新建的服务器组下面注册服务器,在新建服务器节点处单击鼠标右键,弹出菜单,选择新建选项下面的服务器注册选项,进行服务器注册,如图2-57所示。填写服务器名称,选择相应的认证方式,输入用户名及密码,完成

14、注册。图2-57 新建服务器注册实验5 创建并管理数据库【实验目的】1) 熟悉SQL Server Management Studio 窗口。2) 掌握创建数据库的方法。3) 掌握管理数据库的方法。【实验环境】Sql server 2005【实验重点及难点】1) 启动 SQL Server Management Studio 窗口。2) 创建 XSCJ 数据库。3) 修改 XSCJ 数据库。4) 分离XSCJ 数据库。5) 附加 XSCJ 数据库。【实验内容】1) 打开“SQL Server Management Studio”窗口,在“对象资源管理器”中展开服务器,鼠标右键单击“数据库”节点

15、,单击“新建数据库”命令,会出现“新建数据库”对话框。2) 在对话框的“数据库名称”框内输入数据库名“XSCJ”后,单击“确定”按钮即可创建默认大小的数据库。3) 鼠标右键单击“XSCJ”数据库,在弹出的快捷菜单中选择“属性”命令,会出现“数据库属性”对话框;在对话框中单击“文件”选项卡,可以增加或删除数据库文件,单击“确定”按钮即可完成数据库的修改。4) 鼠标右键单击“XSCJ”数据库,在弹出的快捷菜单中选择“任务”“分离”命令,会出现“分离数据库”对话框,单击“确定”按钮即可完成数据库的分离。5) 鼠标右键单击“数据库”,在弹出的快捷菜单里选择“附加”命令,会出现“附加数据库”对话框,在该

16、对话框中单击“添加”按钮,会出现“定位数据库文件”对话框,在改对话框中,选择要附加的数据库文件(.mdf),单击“确定”按钮后,返回到“附加数据库”对话框,再单击“确定”按钮即可完成数据库的附加。实验6 创建表并输入数据【实验目的】1) 熟悉创建数据表的操作2)掌握创建数据表的操作3)掌握数据输入和修改的操作【实验环境】Sql server 2005【实验重点及难点】1) 在xscj数据库中分别创建学生情况表xsqk,课程表kc,学生与课程表xs_kc,并表结构分别如表4-5,表4-6表4-7所示列名数据类型长度属性约束学好Char6是否允许为空置默认值标识符主键否无姓名Char8否无唯一性别

17、Bit1否10或1出生日期Smalldatetime4否无 表4-5列名数据类型长度属性约束是否允许为空置默认值标识符所在系Char10否无专业名Char10否无联系电话Char11是无6为数字总学分Tinyint1是无0200备注Text30是无 表4-6 列名数据类型长度属性约束是否允许为空值默认值标识列序号Int 4初始值 增量为1课程号Char3否无主键课程名Char20否无授课教师Char8无开课学期Tinyint1否1只能为16学时Tinyint1无学分Tinyint1无 表4-7列名数据类型长度属性约束是否允许为空默认值学号Char6否无外键,参照XSQK表组合为主键课程号Cha

18、r3否无外键,参照cK表成绩Tinyint1无0100学分Tinyint1无2) 分别向XSQK, KC XS_KC表中输入数据,其内容由用户自定义【实验内容】1) 打开“SQL server Management Studio”窗口,单击在标准”工具栏汇总“新建查询”按钮,会出现如图所示的界面2) 在“SQL编辑器”工具栏中,单击“可用数据库”右边的下拉按钮,将当前数据库切换成”XSCJ”库3) 在查询窗口中,输入如下的命令 CREATE TABLE XSQK(学号 CHAR(6) NOT NULL,姓名 CHAR(8) NOT NULL,性别 BIT NOT NULL DEFAULT 1,

19、生日 SMALLEATETIME NOT NULL,专业 CHAR(10) NOT NULL,所在系 CHAR(10) NOT NULL,联系电话 CHAR(11),总学分 TINYINT,备注 TEXT,CONSTRAINT PK_XSQK_XH PRIMART KEY(学号),CONSTRAINT UQ_XSQK_DH UNIQUE(姓名),CONSTRAINT CK_XSQK_XB CHECK(姓名=1 OR 姓名=0)CONSTRAINT CK_XSQK_DH CHECK(联系电话 LIKE【1-9】【1-9】【1-9】【1-9】【1-9】【1-9】),CONSTRAINT CK_XS

20、QK_ZXF CHECK(总学分<=0 AND 总学分<=200))GO CREATE TABLE KC(序号 INT INDENTITY,课程号 CHAR(3) NOT NULL PRIMARY KEY(课程号),课程名CHAR(20) NOT NULL ,授课教师 CHAR(8),开课上学期 TINYINT NOT NULL DEFAULT 1,学时 TINYINT NOT NULL,学分 TINYINT,CONSTRAINT CK_KC_XQ CHECK(开课学期>=1 AND 开课学期<=6)GO CREATE TABLE XS_KE( 学号 CHAR(6) N

21、OT NULL REFERENCES XSQK(学号),课程号CHAR(3) NOT NULL,成绩 TINYINT CHECK(成绩>=0 AND 成绩<=100),学分 TINYINT ,PRIMARY KEY(学号 ,课程号),FOREIGN KEY(课程号) REFERENCED KE(课程号))4)在“SQL编辑器工具栏中,单击”执行“阿牛,XSQK KE XS_KE 表创建成功后,在结果窗口会出现”命令以成功的信息提示,如图5) 在“对象资源管理器“中展开数据库”XSCJ”鼠标右键单击”表“节点,在弹出的快捷菜单中单击”刷新“命令,课看到个那个创建号的上面3张表实验7

22、使用Select 语句查询数据(一)简单查询【实验目的】掌握SELECT语句的使用和简单查询方法。【实验环境】Sql server 2005【实验重点及难点】1)启动SQL Server 2005查询环境。2)涉及单表的简单查询。【实验内容】1) 打开“SQL Server Management Studio”窗口。2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口3) 在窗口中输入以下SQL查询命令并执行:a.在KC表中,查询第2学期开课的课程、授课教师select 课程名, 授课教师, 开课学期from kcwhere 开课学期=2b.在XSQK表中,查询女同学的姓名和电话

23、号码select 姓名, 性别, 联系电话from xsqkwhere 性别=0c.在XS_KC表中,查询成绩在80分以上的学号、课程号和成绩select 学号, 课程号, 成绩from xs_kcwhere 成绩>=80d.在XS_KC表中,查询在80以上和不及格学生的信息select 学号, 课程号, 成绩from xs_kcwhere 成绩>=80 or 成绩<60e.在XSQK表中,查询不在1980年7、8、9月出生的学生信息select 学号, 姓名, 出生日期from xsqkwhere 出生日期 not between 1980-07-07 and 1980-0

24、9-30f. 在XSQK表中,擦汗寻陈姓且单名的信息select *from xsqkwhere 姓名 like 陈_g.在XSQK表中,查询学号中含有1的记录信息select *from xsqkwhere 学号 like %1%h.在XSQK表中,查询电话号码第7位为4和6的记录信息select *from xsqkwhere 联系电话 like _ _ _ _ _ _ 46 _i.在KC表中,查询第一、三、五学期开设的课程信息select *from kcwhere 开课学期 in (1, 3, 5)j.查询XSQK表,输出学号、姓名、出生日期、并使查询结构按出生日期升序排列select

25、 学号, 姓名, 出生日期from xsqkorder by 出生日期实验8 使用Select 语句查询数据(二)汇总查询【实验目的】掌握数据汇总查询及其相关子句的使用。【实验环境】Sql server 2005【实验重点及难点】1)启动SQL Server 2005查询环境。2)涉及单表的汇总查询。【实验内容】1) 打开“SQL Server Management Studio”窗口。2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口3)在窗口中输入以下SQL查询命令并执行:a.在KC表中,统计每学期的总分数select 开课学期, sum(学分) as 各学期的学分合计fr

26、om kcgroup by 开课学期b.在XS_KC表中统计每个学生的选修课程的门数select 学号, count(*) as 每个学生选修的课程门数from xs_kcgroup by 学号c.统计KC表中的总学分,并显示明细信息select 课程名称, 开课学期, 学分from kccompute sum(学分)d.按开课学期统计KC表中各期的学分,并显示明细信息select 课程名称, 开课学期, 学分from kcorder by 2compute sum(学分) by 开课学期e.将XS_KC表中的数据记录按学号分类汇总,输出学号和平均分select 学号, avg(成绩) as

27、学生的平均分from xs_kcgroup by 学号f.查询平均分大于70且小于80的学生学号和平均分select 学号, avg(成绩) as 学生的平均分from xs_kcgroup by 学号having avg(成绩) between 70 and 80g.查询XS_KC表,输出学号、课程号、成绩,并使查询结果首先按照课程号的升序排列,当课程号相同时再按照成绩降序排列,并将查询结果保存到新表TEMP_KC中select 学号, 课程号, 成绩into temp_kcfrom xs_kcorder by 课程号, 成绩 desch.查询选修了“101”课程的学生的最高分和最低分sel

28、ect max(成绩) as 101课程的最高分, min(成绩) as 101课程的最低分from xs_kcwhere 课程号=101i.统计每个学期所开设的课程门数select 开课学期, count(*) as 每学期开设的课程门数from kcgroup by 开课学期j.查询各专业的学生人数select 专业名, count(专业名) as 各专业人数from xsqkgroup by 专业名实验9 使用Select 语句查询数据(三)连接查询和子查询【实验目的】)掌握内连接的查询方法。)了解子查询的查询方法。【实验环境】Sql server 2005【实验重点及难点】1)启动SQ

29、L Server 2005查询环境。)涉及多表的复杂查询。【实验内容】1) 打开“SQL Server Management Studio”窗口。2) 单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口3)在窗口中输入以下SQL查询命令并执行:a.查询不及格学生的学号、课程名、授课教师、开课学期的信息select 学号, xs_kc.课程号, 授课教师, 开课学期, 成绩from kc, xs_kcwhere kc.学号=xs_kc.学号 and 成绩<60b.按学号分组汇总总分高于100的学生记录,并按总分的降序排列select 学号, sum(成绩) as 各学生的总分fr

30、om xs_kcgroup by 学号having sum(成绩)>=100order by sum(成绩) descc.使用子查询求恰好有两门课程不及格的学生信息select 学号, 姓名from xsqkwhere (select count(课程号)from xs_kcwhere xsqk.学号=xs_kc.学号 and 成绩>=60 )=2d.使用子查询查询每门课程的最高分的学生记录select *from xs_kc awhere 成绩=(select max(成绩)from xs_kc bwhere a.课程号=b.课程号)e.使用子查询查询每个学生的最低分的课程记录s

31、elect *from xs_kc awhere 成绩=(select min(成绩)from xs_kc bwhere a.学号=b.学号)实验10 创建视图并通过视图操作表数据【实验目的】1)掌握视图的创建。2)掌握使用视图来插入、更新、删除表数据。【实验环境】Sql server 2005【实验重点及难点】1)启动SQL2005查询编辑器。2)创建一个简单的视图,查询第3学期及其以后开课的课程信息。3)在视图中使用INSERT语句插入数据。4)在视图中使用UPDATE语句更新数据。5)在视图中使用DELETE语句删除数据。【实验内容】(1)创建视图1)打开“SQL Server Mana

32、gement Studio”窗口。2)单击:“标准”工具栏上的“新建查询”按钮,打开“查询编辑器”窗口。#在窗口内直接输入以下语句,按要求创建视图。在XSCJ数据库中,基于KC表创建一个名为”v_开课信息”的视图,要求该视图中包含列“课程号”、“课程名”、“开课学期”和“学时”、并且限定视图中返回的行中只包括第3学期及以后开课的课程信息。 USE XSCJ CREATE VIEW v_开课信息 AS SELECT 课程号,课程名,开课学期,学时 FROM KC WHERE 开课学期>=34)单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误

33、,则进行修改。5)确保无语法错误后,在XSCJ数据库中就会添加一个名为“v_开课信息”的视图,通过SELECT语句查看视图中的数据,如图所示(2)在视图中使用INSERT语句插入数据1)在“查询编辑器”串口内输入以下语句,在视图中插入一行数据。INSERT INTO v_开课信息 VALUES(022,ASP,4,80)2)单击”SQL编辑器”工具栏上的“执行”按钮。3)执行上述语句后,利用SELECT语句查看视图中的数据,如图所示。(3)在视图中使用UPDATE语句更新数据1)在“查询编辑器”串口内输入以下语句,修改途中的数据。UPDATE v_开课信息SET 开课学期=5,学时=80WHE

34、RE 课程号=0122)单击“SQL编辑器”工具栏上的“执行”按钮。3)执行上述语句后,视图中课程号为“012”的数据记录被修改了,基表中对应数据记录也被修改了。通过SELECT语句查看视图和基表中的数据,结果如图6-24所示。(4)在视图中使用DELETE语句删除数据1)在“查询编辑器”窗口内输入以下语句,删除视图中的数据。DELETE FROM v_课程信息WHERE 课程号=0222)单击“SQL编辑器”工具栏上的“执行”按钮。3)执行上述语句后,先前在视图中添加的数据行被删除。同时,在基表中该数据行也被删除。实验11 使用规则实现数据完整性【实验目的】1)掌握规则的创建、绑定、解除绑定

35、和删除。2)掌握使用规则实现数据完整性的方法。【实验环境】Sql server 2005【实验重点及难点】1)启动SQL Server 2005查询编辑器。2)创建一个关于开课学期的规则,并绑定到列,实现数据的完整性。3)创建一个关于性别的规则,并绑定到列,实现数据的完整性。4)创建一个关于学分的规则,并绑定到列,实现数据的完整性。5)删除规则。【实验内容】(1)创建一个关于开课学期的规则1)打开“SQL Server Management Studio”窗口。2)单击“标准”工具栏上的“新建查询”按钮,打开“查询编辑器”窗口。3)在窗口内直接输入以下语句,创建规则,将“开课学期”列的值约束在

36、18之间。USE XSCJCREATE RULE kkxq_ruleAS 开课学期>=1 AND 开课学期<=8GO4)单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误,则进行修改。5)确保无语法错误后,单击“SQL编辑器”工具栏上的“执行”按钮。6)在“查询分析器”窗口内输入以下语句,将所创建的规则绑定到“开课学期”列。EXEC Sp_bindrule kkxq_rule,KC.开课学期GO7)单击“SQL编辑器”工具栏上的“执行”按钮。8)在“对象资源管理器”中,展开目标数据库中的“表”节点,鼠标右键单击目标表“KC”,在弹出的

37、快捷菜单中选择“打开表”命令,输入一行新记录,检验“开课学期”列值的约束情况。如果输入的数据不符合规则,则会出现如图7-7所示的对话框。(2)创建一个关于性别的规则1)在“查询分析器”窗口内直接输入以下语句,为XSQK表的“性别”列创建规则,约束其值只能是“男”或“女”。USE XSCJCREATE RULE sex_ruleAS 性别 in(男,女)GO2)单击“SQL编辑器”工具栏上的“执行”按钮、3)在“查询编辑器”窗口内输入以下语句,将所创建的规则绑定到“性别”列。EXEC Sq_bindrule sex_rule,XSQK,性别4)单击“ASQL编辑器”工具栏上的“执行”按钮、5)在

38、“对象资源管理器”中,展开目标数据库中的“表”节点,鼠标右键单击目标表“XSQK”,在弹出的快捷菜单中选择“打开表”命令,输入一行新记录,检验“性别”列值的约束情况。(3)创建一个关于学分的规则1)在“查询编辑器”窗口内直接输入以下语句,创建规则,要求“学分”列的值只能输入16之间的数字。实现步骤如下所述。USE XSCJCREATE RULE xf_ruleAS 学分 like 1-6GO2)单击“SQL编辑器”工具栏上的“执行”按钮。3)在“查询编辑器”窗口内输入以下语句,将所创建的规则绑定到“学分”列。EXEC sp_bindrulr xf_rule,KC.学分GO4)单击” 执行”按钮

39、。实验12 使用 T-SQL编写程序【实验目的】)掌握常用函数的使用方法。)掌握流程控制语句的使用方法。【实验环境】Sql server 2005【实验重点及难点】)启动SQLServer 2005 查询编辑器。 2) 应用转换函数。 3)应用聚合函数。 4)应用字符串函数。 5)应用IF··· ELSE语句。 6)应用WHILE语句。 【实验内容】 (1)应用转换函数 1)打开“SQLServer Manageement Studio” 窗口。 2)单击“标准”工具栏上的“新建查询”按钮,打开“查询编辑器”窗口。 3)在窗口内直接输入以下语句,求KC表中课程号为

40、“107”的课程名称的长度,并输入结果。 USE XSCJ DECLAREdlength int SELECT length=LEN(课程名) FROM KC WHERE课程号号课程名称的长度为:CONVERT(varchar(4),length) 4)单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误,则进行修改,直到没有语法错误为止。 5)确保无语法错误后,单击“SQL编辑器”工具栏上的“执行”按钮。()应用聚合函数 )在“查询编辑器”窗口内输入以下语句,统计XSQK表中的学生人数,并输出结果。 USEcounter int SELECT c

41、ounter =COUNT(*) FROM XSQK PRINT XSQK表中共有+CAST( counter AS varchar (4))+学生名 2 )单击“SQL编辑器”工具栏上的“执行”按钮,执行结果如图8-2所示。 (3 ) 应用字符串函数 1) 在“查询编辑器”窗口内输入以下语句,将字符串“Welcome to SQL Qerver” 转换为大写字母输出。 DECLARE change varchar(30) SEL change =Welcome to SQL Server PRINT UPPER ( change ) 2) 单击“SQL编辑器” 工具栏上的“执行” 按钮,执行

42、结果如图8-3所示。 (4) 应用IF···ELSE 语句 1) 在“查询编辑器”窗口内输入以下语句,查询学号为“020101” 的学生的平均分是否超过了85分, 若超过则输出“ X X 考出了高分”, 否则输出 “XX 考的一般”。 USE XSCJ DECLARE sno char(6) sname char(8) SET sno =020101 IF (SELECT AVG(成绩) FROM XS_KC WHERE 学号=sno) >85 BEGIN SELECT sname =姓名 FROM XSQK WHERE 学号= sno PRINT anam

43、e+考出了高分 END ELSE PRINT sname+考的一般实验13 使用触发器实现数据完整性【实验目的】1) 掌握用触发器实现域完整性的方法。2) 掌握用触发器实现参照完整性的方法。3) 掌握触发器与约束的不同。【实验环境】Sql server 2005【实验重点及难点】1) 启动SQL Server2005查询编辑器。2) 为表建立一个触发器,实现域完整性,并激活触发器进行验证。3) 为表建立一个能级联更新的触发器,实现参照完整性,并激活触发器进行验证。4) 比较约束与触发器的执行顺序。【实验内容】(1) 实现域完整性1) 打开“SQL Server Management Studi

44、o”窗口2) 单击“标准”工具栏上的“新建查询”按钮,打开“查询编辑器”窗口。3) 在“SQL编辑器”工具栏上选择可用数据库,如“XSCJ”。4) 在窗口内直接输入以下CREATE TRIGGER语句,创建触发器。为KC表创建一个INSERT触发器,当插入的新行中开课学期的值不是16时,就激活该出发器,撤销该插入操作,并使用RAISERROR语句返回一个错误信息。CREATE TRIGGER tri_INSERT_KC ON KCFOR INSERTASDECLARE 开课学期 tinyintSELECT 开课学期=KC.开课学期FROM KC,InsertedWHERE KC.课程号= In

45、serted.课程号如果新插入行的开课学期的值不是16,则撤销插入,并给出错误信息IF 开课学期 NOT BETWEEN 1 AND 6 BEGIN ROLLBACK TRANSACTION RAISERROR(开课学期的取值只能是16!,16,10) END5) 单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误,则进行修改,直到没有语法错误为止。6) 确保无语法错误后,单击“SQL编辑器”工具栏上的“执行”按钮,完成触发器的创建。7) 在左边的“对象资源管理器”中用鼠标右键单击目标“表”节点,如“KC”,弹出快捷菜单,选择“打开表”命令,打开

46、表的数据记录窗口。8) 在表中分别插入两行记录以激活该触发器,第一行的开课学期的值在16以内,第二行的开课学期的值在16以外。当插入第一行时,系统成功地接受了数据,无信息返回。而在插入第二行时,系统撤销该插入操作,拒绝接受非法数据,并返回错误信息,从而保证了域完整性,如图9-21所示。(2)1)在“查询编辑器”窗口内直接输入以下CREATE TRIGGER语句,创建触发器。为KC表再创建一个UPDATE触发器,当更新了某门课程的课程号信息时,就激活该触发器级联更新XS_KC表中相关的课程号信息,并使用PRINT语句返回一个提示信息。 CREATE TRIGGER tri_UPDATE_KC O

47、N KCFOR UPDATEASIF UPDATE(课程号) 检测课程号列是否被更新 BEGIN DECLARE 原课程号char(3),新课程号 char(3)声明变量获取更新前后的课程号的值SELECT 原课程号=Deleted.课程号,新课程号=Inserted.课程号 FROM Deleted,InsertedWHERE Deleted,课程名=Inserted.课程名PRINT 准备级联更新XS_KC表中的课程号信息级联更新XS_KC表中相关成绩记录的课程号信息UPDATE XS_KCSET 课程号=新课程号WHERE 课程号=原课程号PRINT 已经级联更新XS_KC表中原课程号+

48、原课程号+为+新课程号END2)单击“SQL编辑器”工具栏上的“分析”按钮,检查输入的T-SQL语句是否有语法错误。如果有语法错误,则进行修改,知道没有语法错误为止。3)确保无语法错误后,单击“SQL编辑器”工具栏上的“执行”按钮,完成触发器的创建。4)在“查询编辑器”窗口内如入并执行以下UPDATE语句,修改KC表的课程号列,以激活触发器,级联修改XS_KC表中的课程号列,并返回提示信息,从而实现了参照完整性。UPDATE KCSET 课程号=115WHERE 课程名=计算机硬件基础(3)比较约束与触发器的执行顺序1)在“查询编辑器”窗口内输入并执行以下ALTER TABLE语句,为KC表添

49、加一个约束,使得开课学期的值只能为16。ALTER TABLE KCADD CONSTRAINT CK_开课学期 CHECK(开课学期>=1 AND 开课学期<=6)2)在“查询编辑器”窗口内输入并执行以下INSERT语句。INSERT KC(课程号,课程名,授课教师,开课学期,学时,学分) VALUES(120,软件开发案例,李学涛,7,68,4)从这部分实验中可以看到,约束优先于FOR或AFTER触发器起作用,它在更新前就生效,对要更新的值进行规则检查。当检查到与现有规则冲突时,系统给出错误消息,并取消更新操作。如果检查没有问题,更新被执行,再激活触发器。实验14 为用户设置权

50、限【实验目的】1) 掌握在SQL Server Management Stuido 里为用户添加或修改或修正权限的两种方法。2) 掌握在“安全性”里这只用户权限的方法。3) 掌握在数据库里这是用户权限的方法。【实验环境】Sql server 2005【实验重点及难点】1)启动SQL Server 2005的对象资源管理器。2)在“安全性”里设计用户权限。3)在数据库里设置用户权限。【实验内容】(1)在“安全性”里设置用户权限1)打开“SQL Server Management Studio”的“对象资源管理器”窗口。2)选择“数据库实例名” “安全性” “登录名”选项,鼠标右键单击要修改权限的登录名,在弹出的快捷键菜单里选择“属性

温馨提示

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

评论

0/150

提交评论