当前位置:文档之家› 《数据库原理及课程设计》实验指导书

《数据库原理及课程设计》实验指导书

辽东学院自编教材《数据库原理》实验指导书鲁琴李荣霞编(信息管理与信息系统专业用)信息技术学院2011年1月实验一SQL SERVER 环境、数据定义与数据更新 (1)实验二数据查询 (6)实验三数据安全性 (10)课程设计 (12)实验一 SQL Server环境、数据定义与数据更新实验类型:验证实验课时:2 指导教师:时间:20 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:实验目的1. 熟悉SQL Server 2000开发环境,了解各常用工具的使用。

2. 掌握数据库服务器的本机注册,熟悉网络中其他数据库服务器的注册。

3. 掌握数据库的创建、删除。

4. 熟练掌握命令方式下各种难度表的创建。

5. 掌握命令方式下不同类型索引的创建与删除。

6. 熟练掌握命令方式下对表中数据的增、删、改。

实验内容及要求要将所有实验内容写在"实验结果”,并在本实验完成时完成实验报告并上父。

1. 创建数据库要求:(1)创建的数据库名为你的姓名。

(2)在默认路径下建库,能指出这个默认的路径。

(3)会在某一盘符下以你的班级姓名学号命名的文件夹中创建数据库。

2. 定义基本表要求:(1) 在建好的数据库中用命令方式创建三个关系,分别为学生关系student、课程关系course、选课关系SC。

(2) 学生关系的关系模式为: student(sid,sname,ssex,sage, sdept)各字段分另U代表学号、姓名、性别、年龄、所在系。

sid设为主键。

(3) 课程关系的关系模式为: course(cid,cname,credit),各字段分别代表课程号、课程名、学分。

cid设为主键。

(4) 选课关系的关系模式为: sc(sid,cid,score),各字段分别代表学号、课程号、成绩。

cid和sid为复和主键,sid和cid为外键。

(5) 各字段数据类型要设置恰当,并对ssex、score设置合理的约束。

(6) 将建表命令存成脚本文件,可存为一个文件也可存为独立的多个脚本文件。

3. 修改基本表要求:(1)向student表增加"入学时间”列,其数据类型为日期型。

(2)将course表中的cname列加宽到60个字符。

(3)*在student表中增加完整性约束定义,使sage取值在15- 40之间。

(4)*增加课程名称必须取唯一值的约束条件。

(5)删除student表中"入学时间”列。

4. 删除基本表要求:*删除sc表。

5. 索引的建立、删除要求:(1)为表sc按学号升序和课程号降序建唯一索引sci。

(2)*在实例数据库 pubs中,为表authors在au_id上建立聚集索引。

(3)删除表sc的索引sci。

6. 插入数据要求:在建好的3个表student,course,sc 中各插入2条记录,要求内容如下。

用命令方式写出相关命令(注意顺序):CourseScstude nt7•修改数据要求:(1)将“郑秀丽”的系改为“国际贸易”系。

(2)将所有学生的成绩提高到原来的 1.1倍。

(3)将所有学生的年龄加 1岁。

(4)将“国际贸易”系所有学生的成绩置零。

8.删除数据要求:(1)删除学号为“ 0009002”的学生记录。

(2)删除所有学生选课记录。

(3)删除计算机科学系所有学生的选课记录。

三、实验结果--创建基本表--建立学生表sname ssex sage sdeptchar ( 5), char ( 1), int , char ( 20 ));create tableCourse (cid char( 4) notnullprimarycname char ( 20 ), credit float ,);-- 成绩表create tableSc(sid char ( 7),cid char ( 4),score int >primary key ( sid , cid ),foreign key ( sid ) references foreign key ( cid ) references-- 修改 Course 的 cid 长度,失败alter table Coursealtercolumn-- 删除 course表alter table --* 在 student alter table中各插入条记录create table Student (sid char ( 7) not null primary key --3. 修改基本表-- 向 student 表增加 “入学时间 ”列,其数据类型为日期型 alter table Student add 入学时间 date ; -- 将 course 表中的 cname 列加宽到个字符Course alter column cname varchar ( 60); 表中增加完整性约束定义,使 sage 取值在-之间 Student --* 增加课程名称必须取唯一值的约束条件 -- 删除 student 表中 “入学时间 ”列 alter table Student drop column 入学时间 ;--5. 索引的建立 , 删除-- 为表 sc 按学号升序和课程号降序建唯一索引 scicreate unique index sci on Sc( sid asc , cid desc ); --* 在实例数据库 pubs 中,为表 authors 在 au_id 上建立聚集索引 -- 删除表 sc 的索引 sci drop index Sc. sci ; --6. 插入数据/* 在建好的个表 student,course,scCourse cid cname credit C801 高等数学 3key , Course ;drop tableStudent ( sid ), Course ( cid ));cid char ( 4);-- 建立课程表C802 C++ 语言4Scsid cid score0009001 C801 540009002 C802 70studentsid sname ssex sage sdept0009001 葛文卿女22 国际贸易0009002 郑秀丽男21 <NULL>*/insert into Course ( cid , cname , credit ) values ( 'C801', '高等数学' , 3);values ( 'c802', 'c++ 语言' , 4);insert into Courseinsert into Student ( sid , sname , ssex , sage , sdept ) values ( '0009001' , '葛文卿' , '女' , 22, ' 国际贸易' );insert into Student ( sid , sname , ssex , sage , sdept ) values ( '0009002' , '郑秀丽' ,'男' , 21);--7. 修改数据-- ()将’郑秀丽”的系改为国际贸易”系esupdate Student set sdept ='国际贸易' where sname ='郑秀丽' ;-- ()将所有学生的成绩提高到原来的.1 倍update Sc set score =score * 1.1 ;-- ()将所有学生的年龄加岁update Student set sage =sage +1;-- ()将“国际贸易”系所有学生的成绩置零update Sc set score =0 where sid in ( select sid from Student where sdept ='国际贸易' );--8. 删除数据-- (1) 删除学号为“0009002 ”的学生记录DELECT FROM Student WHERE sid= '0009002 ';-- ( 2 ) 删除所有学生选课记录Delect from Sc;-- ( 3 ) 删除计算机科学系所有学生的选课记录Delect from Sc where (select cid from Course where cname= '计算机科学 ');四、实验中遇到的问题及解决方法,并在本实验完成时完成实验报告并上父。

student 、course 和sc ,用SQL 完成下面的操作。

实验二数据查询实验目的1. 掌握查询的基本语法格式。

2. 熟练掌握单表查询。

3. 掌握连接查询。

4.熟悉嵌套查询。

实验内容及要求要求将所有实验内容写在“实验结果” 对实验一所创建的数据库中的三个表:1. 简单查询 (1) 查询全体学生的学号与姓名。

(2) *查询全体学生的姓名及其出生年份。

(3) *查询选修了课程的学生学号。

(4) 查询平均成绩大于 60分的课程号和平均成绩。

(5) 查询考试成绩有不及格的学生的学号。

(6) 查询年龄不在20- 25岁之间的学生学号、姓名和年龄。

(7) *查询计算机系、国际贸易系、数学系学生的姓名和性别。

(8) *查询有多少学生专业不确定。

(9)*查询所有姓刘的学生的姓名、学号和性别。

(10) 查询名字中第2个字为“阳”字的学生的学号、姓名。

(11) 查询所有不姓张的学生姓名。

(12) *查询选修课程号为“ C801 ”或“ C802”且分数不低于90分的学生的学号、课程号和成 绩。

(13) *查询没有考试成绩的学生的学号和课程号。

(14) *查询选修课程号为“ C801 ”的学生的学号及成绩,按成绩降序排列。

(15) 查询选修了课程的学生人数。

(16) 查询各个课程号及相应的选课人数。

(17) 查询选修了 3门以上课程的学生学号。

2. 复杂检索 (1) *查询单科成绩不及格的学生的学号、姓名、课程名、系别及成绩。

(2)*查询选修了 2门以上课程的学生学号。

(3)* 查询既不是外语系、数学系,也不是财务会计系的学生的姓名和系别。

( 4)查询每个学生及其选修课程的情况,要求结果当中包含学号、姓名、性别、所在系、课名、成绩。

(5)*查询选修了 2 号课程且成绩在 90分以上的所有学生的学号、姓名。

(6)* 查询与“张三”在同一个系学习的学生的学号、姓名、系别。

( 7)查询选修了课程名为“信息系统”的学生学号和姓名。

相关主题