数据库实验报告.docx
- 文档编号:7190255
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:374.94KB
数据库实验报告.docx
《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
数据库实验报告
数据库系统概论
实
验
报
告
实验一
实验题目:
数据库管理系统的使用
实验目的:
掌握SQLSERVER2000的使用和数据库设计的一般方法。
实验内容:
(1)SQLSERVER2000查询分析器的使用
(2)SQLSERVER2000企业管理器的使用。
(3)数据库的设计过程和建立。
实验过程
1.新建数据库表
SQL语句:
CreateDataBaseStu113;
实验二
实验题目:
数据库的设计
实验目的:
掌握数据表建立、修改、删除、索引的SQL语句。
实验内容:
(1)数据表的建立
(2)数据表的修改
(3)数据表的删除
(4)数据表的索引建立
(5)视图的建立与删除
实验过程:
1.数据表的建立
CreateTableS_40809010113(//学生基本信息表
Snochar(11)primarykey,
Snamechar(20),
Ssexchar
(2),
Sagesmallint,
Sdeptchar(20)
);
CreateTableC_40809010113(//课程信息表
Cnochar(4)primarykey,
Cnamechar(40),
Ccreditsmallint,
);
CreatetableSC_40809010113(//选课信息表
Snochar(11),
Cnochar(4),
Gradesmallint,
primarykey(Sno,Cno),
foreignkey(Sno)referencesS_40809010113(Sno),
foreignkey(Cno)referencesC_40809010113(Cno)
);
其中学生表S-40809010113由学号SNO,姓名SNAME,性别SEX,年龄AGE,所在系DEPT组成。
课程表C-40809010113由课程号CNO,课程名CNAME,学分CCREDIT,教师名TNAME组成。
选课表SC-40809010113由学号SNO,课程号CNO,成绩GRADE组成。
2.数据表的修改
AlterTableC_40809010113AddCTNAMECHAR(40);
3.数据表的删除
DropTableS_40809010113;(注:
由于表中有外键,所以需先删除表SC,才可删除表S)
4.数据表的索引及建立
CreateindexStuSnoOnS_40809010113(Sno);
5.视图的建立与删除
CreateViewIS_S
AS
SelectSno,Sname,Sage
FromS_40809010113
WhereSdept='IS'
●建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE)
CreateviewCSV
as
selectSno,Sname,Ssex,Sage
fromS_40809010113
whereSdept='计算机'
●查询1983年以后出生的计算机系学生基本信息。
Select*
fromS_40809010113
whereSage<(2010-1983);
●建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。
CreateviewJSGV
as
SelectSC_40809010113.Sno,Cno,Grade
fromSC_40809010113,S_40809010113
whereSdept='计算机'andS_40809010113.Sno=SC_40809010113.Sno
●查询计算机系学生选课多于3门的学生学号。
SelectSno
fromSC_40809010113
groupbySno
HavingCount(*)>3;
●查询计算机系学生2号课不及格的学生学号和成绩。
SelectSno,Grade
fromSC_40809010113
whereCno='02'andGrade<60;
实验三
实验题目:
数据表的数据操作
实验目的:
掌握数据表数据操作的SQL语句。
实验内容:
SQL语句插入数据操作
SQL语句修改数据操作
SQL语句删除数据操作
SQL语句查询数据操作
实验过程:
维护数据SQL语句:
(1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’)
insert
intoS_40809010113
values('200213808','HUJING','女',22,'计算机');
(2)删除数据库中学号为’200213801’的退学学生有关信息。
Delete
fromS_40809010113
whereSno='200213801';
(3)将计算机系学生2号课成绩全部提高5%。
Update
SC_40809010113
setGrade=Grade+0.05*Grade
whereCno='0002'andSnoin(
selectSno
fromS_40809010113
whereSdept='计算机'
);
(4)统计有学生选修的课程门数。
SelectCount(Cno)
fromC_40809010113;
(5)统计HU老师所授每门课程的学生平均成绩。
SelectAVG(Grade)
fromSC_40809010113
whereCnoin(
selectCno
fromC_40809010113
whereTname='HU'
);
(6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。
SelectCno,count(Sno)
fromSC_40809010113
groupbyCno
havingcount(Sno)>20
orderbycount(Sno)DESC,CnoASC;
(7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。
SelectS_40809010113.Sno,Sname,Cno
fromS_40809010113,SC_40809010113
whereS_40809010113.Sno=SC_40809010113.Sno
andSC_40809010113.gradeisnull;
(8)检索‘OS’课成绩高于该课平均成绩的同学学号。
SelectSC_40809010113.Sno
fromSC_40809010113,C_40809010113
whereC_40809010113.Cname='OS'
andSC_40809010113.Cno=C_40809010113.Cnoandgrade>
(selectAvg(grade)
fromSC_40809010113,C_40809010113
whereSC_40809010113.Cno=C_40809010113.Cno
andC_40809010113.Cname='OS');
查询数据SQL语句:
(1)检索计算机系女生的学号和姓名。
SelectSno,Sname
fromS_40809010113
whereSsex='女'andSdept='计算机';
(2)检索全体学生姓名、出生年份和所在系。
Select2010-SageSborn,Sname,Sage,Sdept
fromS_40809010113;
(3)检索未选修任何课程的学生学号。
SelectSno
fromS_40809010113
whereSnonotin
(selectsnofromSC_40809010113);
(4)检索WANG老师所授课程号、课程名。
SelectCno,Cname
fromC_40809010113
whereTname='WANG';
(5)检索所有姓LI同学的基本信息。
Select*
fromS_40809010113
whereSnamelike'LI%';
(6)检索选修‘DATABASE’课程的学生学号。
SelectSno
fromC_40809010113,SC_40809010113
whereC_40809010113.Cname='DATABASE'
andC_40809010113.Cno=SC_40809010113.Cno;
(7)检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。
Select*
FromS_40809010113
WhereSage<28andSage>
(SelectSage
FromS_40809010113
WhereSname='LIPING');
(8)检索至少选修了一门TIAN老师所授课程的学生姓名、学号。
SelectdistinctS-40809010113.Sno
FromS_40809010113,C_40809010113,SC_40809010113
WhereC_40809010113.CnoIN(
SelectCno
FromC_40809010113
WhereC_40809010113.Tname='TIAN'
AndC_40809010113.Cno=SC_40809010113.Cno
AndS_40809010113.Sno=SC_40809010113.Sno;
实验四
实验题目:
数据表的完整性和安全性
实验目的:
掌握数据表的完整性和安全性的SQL语句。
实验内容:
数据表的完整性约束
触发器
数据库的授权语句
授权SQL语句:
将查询SC表和修改GRADE属性的权限授予用户user1。
将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。
收回所有用户对表S的插入权限。
实验过程:
1.触发器
CreatetriggerSno
afterinsertonSC_40809010113
foreachrow
asbegin
if(GRADE<60)then
GRADE=61;
endif;
End
2.数据库的授权语句
Grantinsert
ontablesc_40809010113
toUser1;
授权SQL语句:
Grantinsert
ontableSC_40809010113
touser2;
将查询SC表和修改GRADE属性的权限授予用户user1。
Grantselect,update(GRADE)
ontableSC_40809010113
touser1;
将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。
Grantinsert
ontableS_40809010113
touser2;
收回所有用户对表S的插入权限。
Revokeinsert
OntableS_40809010113
Frompublic;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)