数据库系统概论实验报告.docx
《数据库系统概论实验报告.docx》由会员分享,可在线阅读,更多相关《数据库系统概论实验报告.docx(25页珍藏版)》请在冰豆网上搜索。
数据库系统概论实验报告
课程实验报告
课程名称
数据库系统概论
班级
实验日期
姓名
学号
实验成绩
实验名称
实验1:
数据定义语句及数据查询语句
实
验
目
的
及
要
求
1.掌握数据查询语句。
实
验
环
境
操作系统:
Windows
DBMS:
SQLServer2005
实
验
内
容
首先在DBMS环境下直接创建书中第56页的3张表。
1.在查询分析器在窗口下用SELECT语句完成单表查询:
(1)查询全体学生的详细记录;
(2)查询所有选修过课的学生的学号;
(3)查询考试成绩不及格的学生的学号;
(4)查信息系(IS)、数学系(MA)和计算机科学系(CS)的学生的姓名和性别;
(5)查所有姓刘的学生的姓名、学号和性别;
(6)查包含课程名中包含“DB%Analysis”的课程的课程号和学分;
(7)查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列;
(8)查询学习1号课程的学生最高分数;
(9)查询各个课程号与相应的选课人数;
2.在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询:
(10)查询每个学生及其选修课程的详细情况,包括学生姓名和课程名;
(11)查询选修2号课程且成绩在90分以上的所有学生的基本情况;
(12)查询每个学生及其选修的课程名其及成绩;
(13)查询与“XXX”在同一个系学习的学生;(XXX为自己的真实姓名)
(14)查询其他系中比信息系某一学生年龄小的学生姓名和年龄;
(15)查询其他系中比信息系所有学生年龄都小的学生姓名及年龄;
调
试
过
程
及
实
验
结
果
1.在查询分析器在窗口下用SELECT语句完成单表查询:
(1)查询全体学生的详细记录;
(2)查询所有选修过课的学生的学号;
(3)查询考试成绩不及格的学生的学号
(4)查信息系(IS)、数学系(MA)和计算机科学系(CS)的学生的姓名和性别;
(5)查所有姓刘的学生的姓名、学号和性别
(6)查包含课程名中包含“DB%Analysis”的课程的课程号和学分
(7)查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列;
(8)查询学习1号课程的学生最高分数;
(9)查询各个课程号与相应的选课人数;
2.在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询
(10)查询每个学生及其选修课程的详细情况,包括学生姓名和课程名;
(11)查询选修2号课程且成绩在90分以上的所有学生的基本情况
(12)查询每个学生及其选修的课程名其及成绩
(13)查询与“XXX”在同一个系学习的学生
(14)查询其他系中比信息系某一学生年龄小的学生姓名和年龄
(15)查询其他系中比信息系所有学生年龄都小的学生姓名及年龄
总
结
1,学会根据软件提示修改错误调试执行
2;数据库建立时要注意命名的一致。
3;查询时记住选择自己刚建立的数据库。
4;比较复杂的嵌套查询语句书写时要细心。
附
录
1.在查询分析器在窗口下用SELECT语句完成单表查询:
(1)查询全体学生的详细记录;
SELECTDISTINCT*
FROMStudent
(2)查询所有选修过课的学生的学号;
SELECTSno
FROMSC
(3)查询考试成绩不及格的学生的学号;
SELECTDISTINCTSno
FROMSC
WHEREGrade<60
(4)查信息系(IS)、数学系(MA)和计算机科学系(CS)的学生的姓名和性别;
SELECTSname,Ssex
FROMStudent
WHERESdeptIN('CS','MA','IS')
(5)查所有姓刘的学生的姓名、学号和性别;
SELECTSname,Ssex,Sno
FROMStudent
WHERESnameLIKE'刘%'
(6)查包含课程名中包含“DB%Analysis”的课程的课程号和学分;
SELECTCno,Ccredit
FROMCourse
WHERECnameLIKE'DB%Analysis'
(7)查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列;
SELECTSno,Grade
FROMSC
WHERECno='3'
ORDERBYGradeDESC
(8)查询学习1号课程的学生最高分数;
SELECTMAX(Grade)
FROMSC
WHERECno='1'
(9)查询各个课程号与相应的选课人数;
SELECTCno,COUNT(Sno)
FROMSC
GROUPBYCno
2.在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询:
(10)查询每个学生及其选修课程的详细情况,包括学生姓名和课程名;
SELECTStudent.*,SC.*
FROMStudent,SC
WHERE=
(11)查询选修2号课程且成绩在90分以上的所有学生的基本情况;
SELECT,Sname
FROMStudent,SC
WHERE=AND
='2'AND
>90
(12)查询每个学生及其选修的课程名其及成绩;
SELECT,Sname,Cname,Grade
FROMStudent,SC,Course
WHERE=AND=
(13)查询与“XXX”在同一个系学习的学生;(XXX为自己的真实姓名)
SELECTSno,Sname,Sdept
FROMStudent
WHERESdeptIN
(SELECTSdept
FROMStudent
WHERESname='吕阳'
)
(14)查询其他系中比信息系某一学生年龄小的学生姓名和年龄;
SELECTSname,Sage
FROMStudent
WHERESageFROMStudent
WHERESdept='IS')
ANDSdept<>'IS'
(15)查询其他系中比信息系所有学生年龄都小的学生姓名及年龄;
SELECTSname,Sage
FROMStudent
WHERESage(SELECTSage
FROMStudent
WHERESdept='IS')
ANDSdept<>'IS'
课程实验报告
课程名称
数据库系统概论
班级
实验日期
姓名
学号
实验成绩
实验名称
实验2:
数据更新及视图
实
验
目
的
及
要
求
1.掌握数据定义语句;
2.掌握数据更新语句;
3.掌握视图的使用。
实
验
环
境
操作系统:
Windows
DBMS:
SQLServer2005
实
验
内
容
商品(商品号字符(3),商品名字符(20),单价浮点型,商品类别字符(5),供应商字符(20));
顾客(顾客号字符(3),姓名字符(10),住址字符(20));
购买(顾客号字符(3),商品号字符(3),购买数量整型);
用SQL语句实现如下题目:
1.创建上述3个表。
2.往表中插入数据:
商品:
M01,佳洁士,,牙膏,宝洁;
M02,高露洁,,牙膏,高露洁;
…
顾客:
C01,Dennis,海淀;
C02,John,朝阳;
购买:
C01,M01,13;
C01,M05,12;
3.将所有的“牙刷”商品单价增加30%。
4.将“宝洁”供应商改为“P&G”。
5.删除所有卖出总数量少于20个的商品信息,不包括从没有卖出的商品。
6.删除没有购买记录的商品。
7.创建顾客号,商品号,商品名称,单价,购买数量的视图。
调
试
过
程
及
实
验
结
果
(详细记录在调试过程中出现的问题及解决方法。
记录实验执行的结果)
总
结
(对实验结果进行分析,问题回答,实验心得体会及改进意见)
附
录
(源程序清单)
课程实验报告
课程名称
数据库系统概论
班级
124
实验日期
姓名
董龙钱
学号
5
实验成绩
实验名称
实验3:
数据库的完整性和安全性
实
验
目
的
及
要
求
1.掌握实体完整性规则的定义方法;
2.掌握参照完整性规则的定义方法;
3.掌握用户定义完整性的定义方法;
4.掌握数据库安全性控制。
实
验
环
境
操作系统:
Windows
DBMS:
SQLServer2005
实
验
内
容
有三个关系模式:
Student(snovarchar(10)主键,snamevarchar(8),ssexvarchar
(2)默认为‘男’,sageint介于20到50之间,sdeptvarchar(20));
Course(cnovarchar(5)主键,cnamevarchar(20)唯一,cpnovarchar(5),creditint);
SC(snovarchar(10)主键,Student表的外键,cnovarchar(5)主键,Course表的外键,gradeint)。
数据库的完整性
(1)利用查询分析器创建上述3个基本表。
(2)删除student表的关于sage20到50的约束
数据库的安全性:
用GRANT和REVOKE语句完成以下授权定义或存取控制功能:
(3)用户王明对Student表和Course表有SELECT权力;
(4)用户李勇对Student表和Course表有INSERT和DELETE权力;
(5)用户刘星对Student表有SELECT权力,对Student表的sage字段有更新权力;
(6)用户张新具有创建表的权力;
(7)用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力;
(8)回收李勇、张新的权限
Student表:
Course表:
SC表:
调
试
过
程
及
实
验
结
果
总
结
1:
更加了解了数据库的完整性和安全性;
2:
提高了动手操作解决问题的能力;
3:
对sql使用更加熟练;
附
录
(1):
createtableStudent
(snovarchar(10)primarykey,
snamevarchar(8),
ssexvarchar
(2)default('男'),
sdeptvarchar(20),
sageint
constraintC1check(sage>=20andsage<=50)
);
createtableCourse
(cnovarchar(5)primarykey,
cnamevarchar(20)unique,
cpnovarchar(5),
creditint
);
createtableSC
(snovarchar(10),
cnovarchar(5),
primarykey(sno,cno),
foreignkey(sno)referencesStudent(sno),
foreignkey(cno)referencesCourse(cno),
gradeint
);
(2):
altertableStudent
dropconstraintC1;
(3):
Grantselect
onStudent
to王明;
Grantselect
onCourse
to王明;
(4):
GrantINSERT,DELETE
onStudent
to李勇;
GrantINSERT,DELETE
onCourse
to李勇;
(5):
GrantSELECT
onStudent
to刘星;
Grantupdate
onCourse(sage)
to刘星;
(6):
GrantCreate
to张新;
(7):
Grantallprivileges
onStudent
to周平;
Grantallprivileges
onCourse
to周平;
(8):
RevokeINSERT,DELETE
onStudent
from李勇;
GrantINSERT,DELETE
onCourse
from李勇;
课程实验报告
课程名称
数据库系统概论
班级
实验日期
姓名
学号
实验成绩
实验名称
实验4:
编写存储过程访问数据库
实
验
目
的
及
要
求
1.熟悉使用存储过程来进行数据库应用程序的设计。
实
验
环
境
操作系统:
Windows
DBMS:
SQLServer2005
实
验
内
容
创建关系模式SC
SC(snovarchar(10)主键,Student表的外键,cnovarchar(5)主键,Course表的外键,scoreint,newscorevarchar
(1))
一开始SC表中的前3列是有数据的,newgrade列全部是空的
1.编写存储过程将学生选课成绩(百分制)转换成等级制(即5、4、3、2、0),要求使用游标完成
其中,5:
90~100
4:
80~89
3:
70~70
2:
60~69
0:
0~59
2.执行该存储过程,使得newgrade列中为各等级。
调
试
过
程
及
实
验
结
果
(详细记录在调试过程中出现的问题及解决方法。
记录实验执行的结果)
总
结
(对实验结果进行分析,问题回答,实验心得体会及改进意见)
附
录
(源程序清单)