数据库实验内容.docx
- 文档编号:15199208
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:20
- 大小:726.25KB
数据库实验内容.docx
《数据库实验内容.docx》由会员分享,可在线阅读,更多相关《数据库实验内容.docx(20页珍藏版)》请在冰点文库上搜索。
数据库实验内容
数据库实验内容
数据库实验内容
环境选择:
WINDOWSXPSP2+SQLSERVER2005
实验一:
安装SQLSERVER2005EXPRESS+SQLServerManagementStudioExpress
实验二:
实验三:
使用SQL语句实现视图的更新,例如:
UPDATEC_P_NSETpna='人民日报-1'wherepna='人民日报'
将“人民日报”修改成“人民日报-1”
实验四 SELECT查询操作
1、基于“教学管理”数据库jxgl,试用SQL的查询语句表达下列查询:
(1)检索年龄大于23岁的男学生的学号和姓名。
SELECTSno,SnameFROMStudentWHERE(Sage>23)AND(Ssex='男')
(2)检索至少选修一门课程的女学生姓名。
selecta.Snamefromstudentasa,scasb
wherea.Ssex='女'anda.Sno=b.Snogroupbya.Snamehavingcount(b.Cno)>=1
(3)检索王同学不学的课程的课程号。
selectCnofromSCwhereSnoin(selectSnofromstudentwhereSnamelike'王%')
(4)检索至少选修两门课程的学生学号。
selectSnofromscgroupbySnohavingcount(*)>=2
(5)检索全部学生都选修的课程的课程号与课程名。
selectCno,CnamefromCoursewhereCnoin(selectCnofromscgroupbyCno)
(6)检索选修了所有3学分课程的学生学号。
selectSnofromscwhereCnoin(selectCnofromCoursewhereCcredit=3)
2、基于“教学管理”数据库jxgl,试用SQL的查询语句表达下列查询:
(1)统计有学生选修的课程门数。
SELECTCOUNT(DISTINCTCno)FROMSC
(2)求选修4号课程的学生的平均年龄。
SELECTAVG(a.Sage)fromStudentasa,Scasbwherea.Sno=b.Snoandb.Cno=4
(3)求学分为3的每门课程的学生平均成绩。
SELECTAVG(a.Grade)fromScasa,Courseasbwherea.Cno=b.Cnoandb.Ccredit=3
(4)统计每门课程的学生选修人数,超过3人的课程才统计。
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SELECTCno,Count(*)as选修人数fromscgroupbycno
havingcount(*)>3orderby选修人数DESC,cnoASC
(5)检索学号比王非同学大,而年龄比他小的学生姓名。
SELECTSnamefromstudentwhere
Sno>(selectsnofromstudentwhereSname='王非')and
Sage<(selectSagefromstudentwhereSname='王非')
(6)检索姓名以王打头的所有学生的姓名和年龄。
SELECTSname,Sagefromstudentwheresnamelike'王%'
(7)在SC中检索成绩为空值的学生学号和课程号。
SELECTSno,CnofromScwhereGradeisNULL
(8)求年龄大于女同学平均年龄的男学生姓名和年龄。
SELECTSname,SagefromStudentwhere
Sage>(Selectavg(Sage)fromStudentwhereSsex='女')andSsex='男'
(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
SELECTSname,SagefromStudentwhere
Sage>(SelectMax(Sage)fromStudentwhereSsex='女')andSsex='男'
(10)检索所有比“王华”年龄大的学生姓名、年龄和性别。
SELECTSname,Sage,SsexfromStudentwhere
Sage>(SelectSagefromStudentwhereSname='王华')
(11)检索选修“2”课程的学生中成绩最高的学生的学号。
SELECTSnofromscwhereCno=2andGrade=(selectMax(Grade)fromscwhereCno=2)
(12)检索学生姓名及其所选修课程的课程号和成绩。
SELECTa.Sname,b.Cno,b.Gradefromstudentasa,scasbwherea.Sno=b.Sno
(13)检索选修4门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
SELECTSUM(Grade)fromscwhereGrade>=60and
cnoin(selectcnofromscgroupbycnohavingcount(*)>4)
orderbySUM(Grade)DESC
实验五:
更新操作命令
实验内容
1、学生表Student、课程表Course、选课表SC的表结构等信息同上实验4,请实践以下命令式更新操作:
(1)在学生表Student和学生选课表SC中分别添加如下两表中的记录。
INSERTINTOStudentVALUES('98010','赵青江',18,'男','CS');
INSERTINTOStudentVALUES('98011','张丽萍',19,'女','CH');
INSERTINTOStudentVALUES('98012','陈景欢',20,'男','IS');
INSERTINTOStudentVALUES('98013','陈婷婷',16,'女','PH');
INSERTINTOStudentVALUES('98014','李军',16,'女','EH');
INSERTINTOSCVALUES('98010','1',87);
INSERTINTOSCVALUES('98010','2',NULL);
INSERTINTOSCVALUES('98010','3',80);
INSERTINTOSCVALUES('98010','4',87);
INSERTINTOSCVALUES('98010','6',85);
INSERTINTOSCVALUES('98011','1',52);
INSERTINTOSCVALUES('98011','2',47);
INSERTINTOSCVALUES('98011','3',53);
INSERTINTOSCVALUES('98011','5',45);
INSERTINTOSCVALUES('98012','1',84);
INSERTINTOSCVALUES('98012','3',NULL);
INSERTINTOSCVALUES('98012','4',67);
INSERTINTOSCVALUES('98012','5',81);
(2)备份Student表到TS中,并清空TS表。
SELECT*INTOTSFROMstudent
TRUNCATETABLETS
(3)给IS系的学生开设7号课程,建立所有相应的选课记录,成绩暂定为60分。
INSERTINTOSC(Sno,Cno,Grade)SELECTSno,7,60fromstudentwheresdept='IS'
(4)把年龄小于等于16的女生记录保存到表TS中。
INSERTINTOTSSELECTSno,Sname,Sage,Ssex,SdeptFROMStudent
whereSsex='女'andSage<=16
(5)在表Student中检索每门课均不及格的学生学号、姓名、年龄、性别及所在系等信息,并把检索到的信息存入TS表中。
InsertintoTS
SELECTSno,Sname,Sage,Ssex,SdeptTSfromstudentWhereNOTEXISTS
(Select*FromSCWhereStudent.Sno=SC.SnoandGrade>=60);
(6)将学号为“98011”的学生姓名改为'刘华',年龄增加1岁。
UPDATEStudentSETSname='刘华',Sage=Sage+1WhereSno='98011';
(7)把选修了“数据库系统”课程而成绩不及格的学生的成绩全改为空值(NULL)。
UPDATESCSETGRADE=NULL
FROMCourse,SCWHERECname='数据库系统'andGrade<60andSC.Cno=Course.Cno;
(8)将Student的前4位学生的年龄均增加1岁。
UPDATEStudentSETSage=Sage+1FROM(SELECTTOP4*FROMStudentORDERBYSNO)ASAWHEREA.SNO=Student.SNO
(9)学生王林在3号课程考试中作弊,该课成绩改为空值(NULL)。
UPDATESCSETGRADE=NULLWHERECNO='3'AND'王林'=(SELECTSNAMEFROMSTUDENTWHERESTUDENT.SNO=SC.SNO)
(10)把成绩低于总平均成绩的女同学成绩提高5%。
UPDATESCSETGRADE=GRADE*1.05WHEREGrade<(SELECTAVG(GRADE)FROMSC)
andSnoIN(SELECTSNOFROMStudentWHERESsex='女')
(11)在基本表SC中修改课程号为“2”号课程的成绩,若成绩小于等于80分时降低2%,若成绩大于80分时降低1%(用两个UPDATE语句实现)。
UPDATESCSETGRADE=GRADE*0.98WHERECno='2'ANDGRADE<=80;
UPDATESCSETGRADE=GRADE*0.99WHERECno='2'ANDGRADE>80;
(12)利用“SELECTINTO……”命令来备份Student、SC、Course三表,备份表名自定。
SELECT*INTOStudent1FROMStudent;
SELECT*INTOSC1FROMSC;
SELECT*INTOCourse1FROMCourse;
(13)在基本表SC中删除尚无成绩的选课元组。
DELETEFROMSCWHEREGRADE='NULL'
(14)把“钱横”同学的选课情况全部删去。
DELETEFROMSCWHERESno=(SELECTSnoFROMStudentWHERESname='钱横')
(15)能删除学号为“98005”的学生记录吗?
一定要删除该记录的话,该如何操作?
给出操作命令。
DELETEFROMStudentWHERESNO='98005'
(16)删除姓“张”的学生记录。
DELETEFROMStudentWHERESNAMELIKE'张%';
(17)清空STUDENT与Course两表。
TRUNCATETABLESTUDENT;
TRUNCATETABLECourse;
(18)如何又从备份表中恢复所有的三表。
TRUNCATETABLESTUDENT;
TRUNCATETABLECourse;
TRUNCATETABLESC;
SELECT*INTOStudentFROMStudent1;
SELECT*INTOCourseFROMCourse1;
SELECT*INTOSCFROMSC1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 内容