数据库上机实验45解析.docx

上传人:b****7 文档编号:10571687 上传时间:2023-02-21 格式:DOCX 页数:14 大小:178.73KB
下载 相关 举报
数据库上机实验45解析.docx_第1页
第1页 / 共14页
数据库上机实验45解析.docx_第2页
第2页 / 共14页
数据库上机实验45解析.docx_第3页
第3页 / 共14页
数据库上机实验45解析.docx_第4页
第4页 / 共14页
数据库上机实验45解析.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数据库上机实验45解析.docx

《数据库上机实验45解析.docx》由会员分享,可在线阅读,更多相关《数据库上机实验45解析.docx(14页珍藏版)》请在冰豆网上搜索。

数据库上机实验45解析.docx

数据库上机实验45解析

实验四:

一、实习目的:

掌握SELECT的基本使用格式,能使用SQLServer对表作简单的查询。

2、准备:

1.复习3.4节中SELECT的基本使用格式;

2.复习SQL中五种集函数:

AVG、SUM、MAX、MIN、COUNT;

3.完成习题3第12题中各项操作的SQL语句。

3、实习内容:

1.验证习题3第12题中各项操作的SQL语句。

2.验证以下语句是否正确:

SELECTeno,basepay,service

FROMsalary

WHEREbasepay

四、实验报告:

1.1)找出所有被学生选修了的课程号:

selectdistinctCno课程号fromGrade

2)找出01311班女生的个人信息:

select*fromStudent

whereClno='01311'andSsex='女'

3)找出01311班和01312班的学生姓名性别出生年份

selectsname学生姓名,ssex性别,2016-sage出生年份

fromStudent

whereClno='01311'orClno='01312'

4)找出所有姓李的学生的个人信息

select*fromStudent

whereSnamelike'李%

'5)找出李勇所在班级的学生人数

selectCOUNT(*)fromStudent

whereClnoin

(selectClnofromStudent

whereSname='李勇')

6)找出课程名为操作系统的平均成绩最高分最低分

selectAVG(Gmark)平均成绩,MAX(Gmark)最高分,MIN(Gmark)最低分

fromGrade

whereCnoin

(selectCnofromCourse

whereCname='操作系统')

7)选修了课程的学生人数;

selectCOUNT(distinctsno)学生人数

fromGrade

8)选修了操作系统的学生人数:

selectCOUNT(distinctsno)学生人数

fromGrade

whereCnoin

(selectCnofromCourse

whereCname='操作系统')

9)找出2000级计算机软件班的成绩为空的学生姓名:

2.错误。

AVG(basepay)前后缺少,正确的SQL语言应该是:

SELECTeno,basepay,service

FROMsalary

WHEREbasepay

5、思考题:

在表的名字较长时,使用别名可以使编码的查询更容易。

比如遇到子查询,就基本上都需要别名。

而且一旦用了别名就一定要使用该别名。

 

实验五:

1、实习目的:

掌握SELECT语句的嵌套使用方法,使用SQLServer2000对表作复杂查询。

2、实习准备:

1)复习SELECT语句的高级格式和完整格式的使用;

2)了解库函数在分组查询中的使用规则;

3)完成习题3第13/14题中各项操作的SQL语句。

3、实习内容:

验证习题3第13/14题中各项操作的SQL语句。

4、实验报告:

13、1)找出和李勇在同一个班级的学生信息:

select*fromStudent

whereSname<>'李勇'andClnoin

(selectClnofromStudent

whereSname='李勇')

2)找出所有与学生李勇有相同选修课程的学生信息:

3)找出年龄介于学生李勇和25岁之间的学生信息:

select*fromStudent

whereSage<25andSage>

(selectSagefromStudentwhereSname='李勇')

4)找出选修了课程是操作系统的学生学号和姓名:

selectSno学号,Sname姓名fromStudent

whereexists

(select*fromGrade

whereCnoin(selectCnofromCoursewhereCname='操作系统')

andStudent.Sno=Grade.Sno)

5)找出没有选修1号课程的所有学生姓名:

selectSname姓名fromStudent

wherenotexists

(select*fromGrade

whereStudent.Sno=Grade.SnoandCno=1)

6)找出选修了全部课程的学生姓名:

selectSname姓名fromStudent

wherenotexists

(selectCnofromCourse

except

selectCnofromGrade

whereStudent.Sno=Grade.Sno)

14、1)查询选修了3号课程的学生学号及成绩,并按成绩的降序排列:

selectSno学号,Gmark成绩fromGrade

whereCno=3

orderbyGmarkdesc

2)查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列:

select*fromStudent

orderbyClnoasc,Sagedesc

3)求每个课程号及相应的选课人数:

selectGrade.Cno课程号,COUNT(Grade.Cno)选课人数

fromGradejoinCourseonGrade.Cno=Course.Cno

groupbyGrade.Cno

4)查询选修了3门以上课程的学生学号:

selectSno学号fromGrade

groupbySno

havingCOUNT(Sno)>3

使用存在量词[NOT]EXISTS的嵌套查询时,何时外层查询的WHERE条件为真,何时为假:

使用存在量词[NOT]EXISTS,若内层的查询结构非空,那么外层的WHERE字句返回真值,否则返回假值。

5、思考题:

1)用UNION或UNIONALL将两个SELECT命令结合为一个时,结果有何不同?

在合并结果集时,默认从最后结果集中删除重复的行,除非使用ALL关键字。

2)当既能用连接词查询又能用嵌套查询时,应选择哪种查询较好?

为什么?

有些嵌套查询可以用连接运算代替,而有些是不能的。

当可以代替时,用户可以自行决定。

3)库函数能否直接使用在SELECT选取目标、HAVING字句、WHERE字句、GROUPBY列名中?

SELECT选取目标、HAVING字句可以直接使用,

而WHERE字句、GROUPBY不能直接使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1