《数据库原理及课程设计》实验指导书Word格式.docx
《《数据库原理及课程设计》实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《《数据库原理及课程设计》实验指导书Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
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条记录,要求内容如下。
用命令方式写出
相关命令(注意顺序):
Course
cname
credit
C801
高等数学
3
C802
C++语言
4
Sc
sid
score
0009001
54
0009002
70
student
sname
ssex
sage
sdept
葛文卿
女
22
:
国际贸易
郑秀丽
男
21
<
NULL>
7•修改数据
(1)将“郑秀丽”的系改为“国际贸易”系。
(2)将所有学生的成绩提高到原来的1.1倍。
(3)将所有学生的年龄加1岁。
(4)将“国际贸易”系所有学生的成绩置零。
8.删除数据
(1)删除学号为“0009002”的学生记录。
(2)删除所有学生选课记录。
(3)删除计算机科学系所有学生的选课记录。
三、实验结果
--创建基本表
--建立学生表
createtableStudent(
sidchar(7)notnullprimarykey
createtable
(
cidchar
(4)not
null
primary
cnamechar(20),
creditfloat,);
--成绩表
Sc(
sidchar
(7),
(4),
scoreint
>
key(sid
cid),
foreign
)references
key(cid
--修改Course
的cid长度,失败
altertable
alter
column
--删除course
表
key,
Student(sid),Course(cid));
cidchar(4);
--3.修改基本表
--向student表增加“入学时间”列,其数据类型为日期型altertableStudentadd入学时间date;
--将course表中的cname列加宽到个字符
Coursealtercolumncnamevarchar(60);
表中增加完整性约束定义,使sage取值在-之间Student
--*增加课程名称必须取唯一值的约束条件
--删除student表中“入学时间”列
altertableStudentdropcolumn入学时间;
--5.索引的建立,删除
--为表sc按学号升序和课程号降序建唯一索引sci
createuniqueindexscionSc(sidasc,ciddesc);
--*在实例数据库pubs中,为表authors在au_id上建立聚集索引
--删除表sc的索引scidropindexSc.sci;
--6.插入数据
中各插入条记录
/*在建好的个表student,course,sc
cidcnamecredit
C801高等数学3
C802C++语言4
sidcidscore
student
sidsname
女22
男21
*/
insert
into
(cid,cname,credit)values('
C801'
'
高等数学'
3);
values('
c802'
c++语言'
4);
Student
(sid,sname,ssex,sage,sdept)values('
0009001'
'
葛文卿'
22,'
);
0009002'
郑秀丽'
'
21);
--7.修改数据
--()
将’郑秀丽”的系改为国际贸易”系es
update
Studentsetsdept='
国际贸易'
where
sname='
;
将所有学生的成绩提高到原来的.1倍
Scsetscore=score*1.1;
将所有学生的年龄加岁
Studentsetsage=sage+1;
将“国际贸易”系所有学生的成绩置零
Scsetscore=0wheresidin(select
sidfromStudentwheresdept='
国际
贸易'
--8.删除数据
--
(1)删除学号为“0009002”的学生记录
DELECTFROMStudentWHEREsid='
0009002'
;
--
(2)删除所有学生选课记录
DelectfromSc;
--(3)删除计算机科学系所有学生的选课记录
DelectfromScwhere(selectcidfromCoursewherecname='
计算机科学'
);
四、实验中遇到的问题及解决方法
本次
实验
成绩
项目及比例
实验操作
(40%)
报告书写
出勤和课堂纪律
(10%)
课堂提问
得分
成绩合计
教师签字:
批改日期:
实验二数据查询
设计
实验课时:
2
指导教师:
20
年月
日课次:
第节
教学周次:
第
实验员:
周
1.掌握查询的基本语法格式。
2.熟练掌握单表查询。
3.掌握连接查询。
4.熟悉嵌套查询。
,并在本实验完成时完成实验报告并上父。
student、course和sc,用SQL完成下面的操作。
要求将所有实验内容写在“实验结果”
对实验一所创建的数据库中的三个表:
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)*查询单科成绩不及格的学生的学号、姓名、课程名、系别及成绩。