数据库原理上机作业实验45.docx
- 文档编号:2253795
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:17
- 大小:297.78KB
数据库原理上机作业实验45.docx
《数据库原理上机作业实验45.docx》由会员分享,可在线阅读,更多相关《数据库原理上机作业实验45.docx(17页珍藏版)》请在冰豆网上搜索。
数据库原理上机作业实验45
学号:
********姓名:
吴鑫达班级:
计算机一班上机时间:
2016/5/13
数据库版本:
MSSQL2008R2
上机实验四——SELECT语句基本格式的使用
一、实习目的:
掌握SELECT的基本使用格式,能使用SQLServer对表作简单查询。
二、实习准备:
1.复习第三章3.4节中SELECT语句的基本使用格式。
2.复习SQL中五种库函数:
AVG、SUM、MAX、MIN、COUNT;
3.完成习题三第12题中的各项操作的SQL语句。
三、实习内容:
1.验证习题三第12题中的各项操作的SQL语句。
①找出所有被学生选修了的课程号;
语句:
selectdistinctCno
FromGrade;
截图:
②找出01311班女学生的个人信息;
语句:
select*
FromStudent
WhereSsex='女'andClno='01311';
截图:
③找出01311班、01312班的学生姓名、性别、出生年份;
语句:
(六种)
1)SelectSname,Ssex,[出生年份]=(2016-Sage)
FromStudent
WhereClno='01312'orClno='01311';
2)SelectSname,Ssex,[出生年份]=(2016-Sage)
FromStudent
WhereClnoIN('01311','01312');
3)SelectSname,Ssex,’出生年份’=(2016-Sage)
FromStudent
WhereClno='01312'orClno='01311';
4)SelectSname,Ssex,”出生年份”=(2016-Sage)
FromStudent
WhereClno='01312'orClno='01311';
5)SelectSname,Ssex,(2016-Sage)AS'出生年份'
FromStudent
WhereClno='01312'orClno='01311';
6)SelectSname,Ssex,(2016-Sage)AS“出生年份”
FromStudent
WhereClno='01312'orClno='01311';
截图:
④找出所有姓李的学生的个人信息;
语句:
Select*
FromStudent
WhereSnamelike'李%';
截图:
⑤找出学生李勇所在班级的学生人数;
语句:
selectCOUNT(*)as'学生人数'
fromStudent
whereClnoin(
selectClno
fromStudent
whereSname='李勇'
);
截图:
⑥找出课程名为操作系统的平均成绩、最高分、最低分;
语句:
selectAVG(Gmark)as'平均成绩',
MAX(Gmark)as'最高分',
MIN(Gmark)as'最低分'
fromGrade
whereCnoin(
selectCno
fromCourse
whereCname='操作系统'
);
截图:
⑦找出选修了课程的学生人数;
语句:
selectCOUNT(distinctSno)as'选修人数'
fromGrade;
截图:
⑧找出选修了课程操作系统的学生人数;
语句:
selectCOUNT(distinctSno)as'选修操作系统的人数'
fromGrade
whereCnoIN(
selectCno
fromCourse
whereCname='操作系统'
);
截图:
找出2000级计算机软件班的成绩为空的学生姓名
语句:
selectSname
fromStudent
whereSnoIN(
selectSno
fromGrade
whereGmark=null)andClnoin(selectClno
fromClass
whereInyear='2000'ANDSpeciality='计算机软件');
截图:
2.试一下以下语句是否正确:
SELECTeno,basepay,service
FROMsalary
WHEREbasepay 答: 不对,聚合函数(集函数)不应该出现在where语句中。 (3.4.2: 带条件关系查询) 四、上机实验收获(感想): 实践是检验真理的唯一标准 五、思考题: 什么情况下需要使用关系的别名? 别名的作用范围是什么? 答: 在简化书写和子查询的情况下。 作用范围: 区分先后查询的同一关系区。 上机实验五——SELECT语句高级格式和完整格式的使用 一、实习目的: 掌握SELECT语句的嵌套使用方法,能使用SQLServer2000对表作复杂查询。 二、实习准备: 1.复习第三章3.4节中SELECT语句的高级格式和完整格式的使用。 2.了解库函数在分组查询中的使用规则; 3.完成习题三第13、14题中的各项操作的SQL语句。 三、实习内容: 完成以下各项操作的SQL语句: 13. 找出与李勇在同一个班级的学生信息; 语句: select* fromStudent whereClnoin( selectClno fromStudent whereSname='李勇')andSnameNOTIN('李勇'); 截图: ②找出所有与李勇有相同选修课程的学生信息;; 语句: select* fromStudent whereSnoin( selectSno fromGrade whereCnoin( selectCno fromGrade whereSno=(selectSno fromStudent whereSname='李勇' ) ))andSnameNOTIN('李勇'); 截图: ③找出年龄介于学生李勇与25岁之间的学生信息(已知李勇的年龄小于25岁); 语句: select* fromStudent whereSage>(selectSage fromStudent whereSname='李勇' )andSage<25; 截图: ④找出选修了课程操作系统的学生学号与姓名; 语句: selectSno,Sname fromStudent whereSnoin( selectSno fromGrade whereCnoin( selectCno fromCourse whereCname='操作系统' ) ); 截图: ⑤找出没有选修1号课程的所有学生姓名; 语句: selectSname fromStudent whereSnonotin( selectSno fromGrade whereCno='1' ); 截图: ⑥找出选修了全部课程的学生姓名。 语句: 语句: selectSname fromStudent wherenotexists( select* fromCourse wherenotexists( select* fromGrade whereSno=Student.SnoandCno=Course.Cno ) ); 截图: 14.针对习题10的四个表,用SQL语言完成以下各项查询: (1)查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列; 语句: selectSno,Gmark fromGrade whereCno='3' orderbyGmarkdesc; 截图: (2)查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列; 语句: select* fromStudent orderbyClno,Sagedesc; 截图: (3)求每个课程号及相应的选课人数; 语句: selectdistinctCno,count(Cno)AS'选修人数' fromGrade GROUPBYCno; 截图: (4)查询选修了3门以上课程的学生学号。 语句: selectdistinctSno,COUNT(Cno) fromGrade groupbySno havingCount(Cno)>3; 截图: 四、上机实验收获(感想): 实践是检验真理的唯一标准 五、思考题: 一: 问题: 使用存在量词[NOT]EXIST的嵌套查询时,何时外层查询的where条件为真,何时为假? 答: 取决于子查询的select语句,根据它所要查询的值在内查询中进行检查,返回一个逻辑值。 1.用UNION或UNIONALL将两个SELECT命令结合为一个时,结果有何不同? 。 答: 1.UNION命令只会选取不同的值, 2.UNIONALL命令和UNION命令几乎是等效的 3.UNIONALL命令会列出所有的值 2.当既能用连接词查询又能用嵌套查询时,应该选择哪种查询较好? 为什么? 答: 选用连接词查询。 效率高。 3.库函数能否直接使用在: SELECT选取目标、HAVING子句、WHERE子句、GROUPBY列名中? 答: 库函数可以使用在SELECT选取目标、HAVING字句、WHERE子句,不能使用在GROUP BY列名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 上机 作业 实验 45