收藏 分享(赏)

新SQL——SERVER实验练习答案.doc

上传人:liyang3100 文档编号:1469070 上传时间:2018-07-20 格式:DOC 页数:30 大小:321.50KB
下载 相关 举报
新SQL——SERVER实验练习答案.doc_第1页
第1页 / 共30页
新SQL——SERVER实验练习答案.doc_第2页
第2页 / 共30页
新SQL——SERVER实验练习答案.doc_第3页
第3页 / 共30页
新SQL——SERVER实验练习答案.doc_第4页
第4页 / 共30页
新SQL——SERVER实验练习答案.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、SQL-Server 实验答案上海师范大学 计算机系 SQL-Server 实验讲义2目 录第一部分 企业管理器的使用 .3试验一 注册服务器 .3试验二 创建数据库 .3试验三 创建表 .4实验四 数据输入 .5实验五 登录到数据库服务器 .6第二部分 SQL 语言 .7第二部分 SQL 语言 .7试验一 数据库创建 .7试验二 创建表 .7试验三 创建数据完整性 .8试验四 数据完整性试验 .9试验五 索引 .12试验六 更新数据 .13试验七 Sql 查询语句 .13试验八 视图 .15试验九 安全性控制实验 .15试验十 存 储过程 .16试验十二 触发器 .17试验十二 恢复技术 .

2、19试验十三 事务 .20试验十四 锁 .21SQL-Server 实验讲义3第一部分 企业管理器的使用第二部分 SQL语言试验一 数据库创建目的:1 掌握利用 SQL 语言进行数据库的创建、维护。2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一 建立 school 数据库1 使用查询分析器创建数据库 school Create DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用 SQL-Server 的企业管理器查看数据库 school 的信息。 4 记录:1)school 数据库文件所在的文件夹。2)sch

3、ool 数据库的文件名二 删除 School 数据库1 使用查询分析器删除数据库 school DROP DATABASE school2 使用 SQL-Server 的企业管理器删除数据库 school 。 三 create Database 深入研究1 建立 school 数据库,要求数据库存储在 c:data 文件夹下,初始大小为 5MB ,增量为 1MB。CREATE DATABASE school ON(Name = school_dat, Filename = c:sqldataschool.mdf,SIZE = 5, FILEGROWTH = 1 )2 使用 SQL-Server

4、 的企业管理器,将数据库的每次增量改为 20%。试验二 创建表目的:1 掌握利用 SQL 语言创建表的方法。2 sp_help 命令要求:1 创建表 2 修改表结构 3 删除表一 写出使用 Create Table 语句创建表 student , sc,course 的 SQL 语句。学生表、课程表、选课表属于数据库 School ,其各自得数据结构如下:学生 Student (Sno,Sname,Ssex,Sage,Sdept)序号 列名 含义 数据类型 长度1 Sno 学号 字符型(char) 6SQL-Server 实验讲义42 Sname 姓名 字符型(varchar) 83 Ssex

5、 性别 字符型(char) 24 Sage 年龄 整数 (smallint)5 sdept 系科 字符型(varchar) 15课程表 course(Cno,Cname,Cpno,Ccredit)序号 列名 含义 数据类型 长度1 Cno 课程号 字符型(char) 42 cname 课程名 字符型(varchar) 203 Cpno 先修课 字符型(char) 44 Ccredit 学分 短整数 (tinyint)学生选课 SC(Sno,Cno,Grade)序号 列名 含义 数据类型 长度1 Sno 学号 字符型(char) 42 Cno 课程名 字符型(char) 63 Grade 成绩

6、小数(decimal) 12,1二 把创建表的 sql 语句的脚本存储到文件 school.sql 。create table Student ( Sno char(6) , Sname char(10) ,Ssex char(2) ,Sage smallint ,Sdept char(10) ,) create table course( Cno char(4) ,Cname char(16) ,Cpno char(4) ,Ccredit int,)create table SC( Sno char(6),Cno char(4) ,Grade int )三 使用 SP_HELP 查看表 st

7、udent 的表结构利用企业管理器查看表 sc 的表结构四 利用 sql 语句表结构修改1 在 student 表中添加列:家庭地址 address 长度为 60 varchar 型入学日期 inDate 日期型ALTER TABLE student ADD address varchar(60)ALTER TABLE student ADD inDate datetime完成后用 sp_help 查看是否成功。SQL-Server 实验讲义52 将家庭地址 address 长度为 50ALTER TABLE student ALTER COLUMN varchar(50)完成后用 sp_he

8、lp 查看是否成功。3 删除 student 表的 inDate 列ALTER TABLE student DROP COLUMN inDate五 删除表1 删除表 sc2 删除表 student3 删除表 course试验三 创建数据完整性目的:1 掌握创建数据完整性约束的命令。2 掌握完整性约束的修改、删除。要求:1 能建立完整性约束 2 修改完整性约束 3 删除完整性约束一 写出带有完整性约束的 Create Table 命令建立表 student、course、sc 。要求:1 Student 表的主码:sno student 的约束: 姓名不可为空,且唯一 性别 不能为空且取值范围为

9、男,女 年龄大于 16 岁 sdept 默认为 JSJ 系 2Course 表的主码:cnocourse 的约束: Ccredit 取值范围 0 ,1,2,3,4,5 课程表的每一行的 Cno 与 cpno 不可相同3 Sc 表的主码:sno,cno 。主码名为 PK_SCSc 的外码: 外码:SC 表的 sno 参照表 student 的 sno 外码:sc 表的 Cno 参照表 course 的 cno 4 把上述创建表的 sql 语句的脚本存储到文件 createSchool.sql 。create table Student ( Sno char(6) , Sname char(10)

10、 not null unique ,Ssex char(2) check (ssex=男 or ssex=女) ,Sage smallint check(sage16) ,Sdept char(10) not null default JSJ ,primary key (sno) create table course( Cno char(4) ,SQL-Server 实验讲义6Cname char(16) ,Cpno char(4) ,Ccredit int check (Ccredit =0 and Ccreditcpno) , -约束primary key (cno)create tab

11、le SC( Sno char(6),Cno char(4) ,Grade int check(grade=0 and grade16SQL-Server 实验讲义83006 学生不能输入,性别不对。 select * from student 查看你输入了那些数据。2 course 表数据的输入Cno Cname Cpno Ccredit1085 C+ 91086 语文 1086 3 输入上述数据,记录出现的问题,说明原因。1086 不能输入,因为有约束 check(cnocpno) select * from student 查看你输入了那些数据。3 SC 表数据的输入Sno Cno Gr

12、ade3002 1081 128 输入上述数据,记录出现的问题,说明原因。3002 这条数据不能输入,因为 grade 不能大于 100 分 select * from student 查看你输入了那些数据。SQL-Server 实验讲义9三 参照完整性约束 掌握表之间建立外码后,对被参照表的如下操作会有何影响:修改主码、插入新行、删除新行? 对参照表添加新行、删除行、修改外码值有何影响? 掌握级联修改、级联删除的概念。注意:表 SC 的 Sno 是外码,参照 student 的 sno。表 SC 的 Cno 是外码,参照 course 的 cno。1 输入实验前的数据学生表 StudentS

13、no Sname Ssex Sage Sdept4001 赵尹 男 20 SX4002 杨开 女 20 JSJ课程表 course Cno Cname Cpno Ccredit1088 Java 51089 数学 3学生选课 SC Sno Cno Grade4001 1088 904002 1088 862 试验过程 1) 在 SC 表中添加新行:Sno Cno Grade4001 1066 76记录试验结果.,写出出现此结果的原因.不能添加,因为在 cno 是外码,参照 course 的 cno , 但在 course 中没有 1066 课程。2) 在 student 表中添加新行 Sno

14、Sname Ssex Sage Sdept4003 赵辉 男 21 SX记录试验结果.,写出出现此结果的原因.可以输入3) 删除 student 表的 4001 ,4002 学生记录试验结果.,写出出现此结果的原因.两个学生不能被删除,因为 sc 的外码 sno 参照 student 的 sno, sc 中已经有 4001,4002学生的数据,因此不能删除。思考: 删除 SC 表的记录有限制吗?没有 SQL-Server 实验讲义10 采取什么技术能使不能成功执行的命令变得可以执行,且使数据库保持数据完整性。 级联删除4) 把 student 表的学号 4003 改为 4018 , 4001

15、改为 4021。记录试验结果.,写出出现此结果的原因.4003 可以改为 4018, 4001 不能改为 4021 因为 sc 的外码 sno 参照 student 的 sno, sc 中已经有 4001 的数据,但没有 4003 的选课数据。 思考:采取什么技术能使本题不能执行的命令可以执行,且使数据库保持数据完整性。级联修改5) 把 sc 表中的如下记录的学号从 4001 改为 4011。Sno Cno Grade4001 1088 90记录试验结果.,写出出现此结果的原因.不能修改,因为 sc 的外码 sno 参照 student 的 sno, 4011 在 student 中不存在。如

16、不成功,则可以采取什么方法来实现此要求。需要在 student 表中添加 4011 学生。 如不成功,那么把 4001 修改为 4003,能成功吗?能成功!思考: 参照完整性规则中,外码可以为空 , 但 SC 表中的外码可以为空吗?为什么?举一个外码可以为空的例子。不可以,因为 sc 表的主码为 sno+cno, 即 sno,cno 为主属性,所以不能为空。试验五 索引目的:掌握索引的建立、删除的方法。一 创建索引1 建 student 的索引为姓名建立索引,索引名:Ix_student_sname为系科建立索引,索引名:Ix_student_sdeptcreate index ix_stud

17、ent_sname ON student(sname)create index ix_student_sdept ON student(sdept)2 SC 的索引为课程号建立索引: ix_sc_cno create index ix_sc_cno ON sc(cno)3 Course 的索引为课程名建立唯一性索引 :Ix_course_cname create unique index ix_course_cname ON course( cname)4 如何 SP_HELP 查看索引刚才建立的索引?如何在企业管理器中查看索引?二 删除索引 course 表的索引 IX_course_cnameDROP INDEX course.ix_course_cname

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报