数据库实验2.docx
- 文档编号:12202783
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:15
- 大小:1.61MB
数据库实验2.docx
《数据库实验2.docx》由会员分享,可在线阅读,更多相关《数据库实验2.docx(15页珍藏版)》请在冰豆网上搜索。
数据库实验2
实验二:
SQLServer2000操纵数据
和使用视图
姓名:
学号:
实验日期:
2012.12
一、实验环境
MicrosoftSQLServer2005
二、实验目的与要求
1.熟练进行数据库数据的查询。
2.练习对数据库的更新。
3.练习视图的创建和数据操纵。
三、实验内容
1.使用SQL语句完成以下查询
(1)检索王晓名老师所授课程的课程号和课程名。
SQL语句:
SELECTCNO,CNAME
FROMC
WHERETNAME='王晓名'
结果显示:
(2)检索年龄大于22岁的男学生的学号与姓名。
SQL语句:
SELECTS.SNO,S.SNAME
FROMS
WHEREAGE>=22ANDSEX='男';
结果显示:
(3)检索李铭同学不学的课程的课程号。
SQL语句:
SELECTCNOFROMC
EXCEPT
SELECTCNOFROMS,SC
WHERES.SNO=SC.SNOANDS.SNAME='李铭';
输出结果:
(4)检索全部学生都选修的课程号和课程名。
SQL语句:
SELECTCNO,CNAMEFROMC
WHERENOTEXISTS
(SELECT*FROMS
WHERENOTEXISTS
(SELECT*
FROMSC
WHERESC.SNO=S.SNOANDC.CNO=SC.CNO));
输出结果:
(5)求选修C2课程的学生的平均年龄。
SQL语句:
SELECTAVG(AGE)
FROMS,SC
WHERES.SNO=SC.SNOANDCNO='C2';
输出结果:
(6)统计每门课程的学生选修人数(超过5人的课程才统计)。
要求输出课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
SQL语句:
SELECTCNO,COUNT(CNO)ASCOUNT_CNUM
FROMSC
GROUPBYCNOHAVINGCOUNT(CNO)>5
ORDERBYCOUNT_CNUMDESC,CNO;
输出结果:
(7)检索姓名以李打头的所有学生的姓名与年龄。
SQL语句:
SELECTSNAME,AGE
FROMS
WHERESNAMELIKE'李%';
输出结果:
(8)求年龄大于女同学平均年龄的男同学的姓名和年龄。
SQL语句:
SELECTSNAME,AGE
FROMS
WHERESEX='男'
ANDS.AGE>ALL
(
SELECTAVG(AGE)
FROMS
WHERESEX='女'
)
输出结果:
2.使用SQL语句完成以下更新
(1)将元组(‘S10’,‘吴坚’,22)添加到S表中。
SQL语句:
INSERTINTOS(SNO,SNAME,AGE)
VALUES('S10','吴坚','22');
输出结果:
(2)另建一个表STUDENT(SNO,NAME,SEX),将各门课程的总评成绩都达到80分的同学的有关数据存入该表。
SQL语句:
CREATETABLESTUDENT
(SNOchar(4)NOTNULL,SNAMEchar(8)NOTNULL,SEXchar
(2),
PRIMARYKEY(SNO));
INSERTINTOSTUDENT
(SNO,SNAME,SEX)
SELECTSNO,SNAME,SEXFROMS
WHERE80 (SELECTMIN(SC.EGRADE) FROMSC WHERESC.SNO=S.SNO); 输出结果: (3)从SC中删除没有考试成绩的元组。 SQL语句: DELETEFROMSC WHEREGRADEISNULL 输出结果: (4)删除学生刘成刚的选修课程和成绩。 SQL语句: DELETEFROMSC WHERESNO=ALL( SELECTSNO FROMS WHERESNAME='刘成刚') 输出语句: (5)把数据结构课程考试成绩不及格的总评成绩改为空值。 SQL语句: UPDATESC SETGRADE=NULL WHEREGRADE<60 ANDCNOIN( SELECTCNO FROMC WHERECNAME='数据结构' ) 输出结果: (6)把低于总平均考试成绩的女同学的考试成绩提高5%。 SQL语句: UPDATESC SETGRADE=1.05*GRADE WHERESNOIN( SELECTSNO FROMS WHERESEX='女') ANDGRADE SELECTAVG(GRADE)--什么时候修改 FROMSC ) 输出结果: (7)对于所有选修C4课程的学生,总评成绩如果小于等于75就提高5%,否则提高4%。 SQL语句: UPDATESC SETGRADE=(CASEWHENGRADE<=75THENGRADE*1.05ELSEGRADE*1.04END) WHERECNO='C4' 输出结果: 3.建立一个视图,能够从中查询每个学生的学号、姓名、已取得总评成绩的课程数和平均总评成绩。 再在该视图上试着进行各种查询和更新。 SQL语句: CREATEVIEWSTUDENT_VIEW(SNO,SNAME,COUNT_CJ,AVG_CJ) ASSELECTS.SNO,SNAME,COUNT(SC.CNO),AVG(SC.GRADE) FROMS,SC WHERES.SNO=SC.SNO ANDSC.GRADEISNOTNULL GROUPBYS.SNO,SNAME 输出结果: 五、心得体会:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验