CH3数据库的标准语言SQL no.8周(3)

更新时间:2023-08-10 21:21:01 阅读量: 经管营销 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第3章 关系数据库标准语言SQL3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图 3.6 数据控制 3.7 小结

2013-9-10

CH3 关系数据库标准语言—SQL

3.3 查

3.3.1 单表查询 3.3.2 连接查询 3.3.3 嵌套查询 3.3.4小结

2013-9-10

CH3 关系数据库标准语言—SQL

查询(续)语句格式SELECT [ALL|DISTINCT|top n] <目标列表达式> [<别名>] [,<目标列表达式>[<别名>]] … FROM <表名或视图名>[<别名>] [, <表名或视图名>[<别名>] ] … [ WHERE <条件表达式> ] [ GROUP BY <列名> [, <列名>] … [ HAVING <条件表达式> ] ] [ ORDER BY <列名> [, <列名>] … [ ASC|DESC ] ];2013-9-10 CH3 关系数据库标准语言—SQL 3

示例数据库学生-课程数据库学生表: Student(Sno,Sname,Ssex,Sage, Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit)

学生选课表:SC(Sno,Cno,Grade)2013-9-10 CH3 关系数据库标准语言—SQL 4

3.3 查

3.3.1 单表查询 3.3.2 连接查询 3.3.3 嵌套查询 3.3.4 集合查询 3.3.5 小结

2013-9-10

CH3 关系数据库标准语言—SQL

例题查询全体学生的详细记录。 消除满足条件的重复元组。

2013-9-10

CH3 关系数据库标准语言—SQL

1、查询信息系(IS)、数学系(MA) 和计算机科学系(CS)学生的姓名和性别 。 2、查询所有姓刘学生的姓名、学号和性 别。 3、查询DB_Design课程的课程号和学分 4、查询学生的详细信息。 5、查询有不及格的学生的学号和成绩。 6、别名

例题某些学生选修课程后没有参加考试,所以有 选课记录,但没有考试成绩。查询缺少成绩 的学生的学号和相应的课程号。 SELECT Sno,Cno FROM SC WHERE Grade = NULL;

?8

2013-9-10

CH3 关系数据库标准语言—SQL

三、对查询结果排序●方法

使用ORDER BY子句 可以按一个或多个属性列排序

2013-9-10

CH3 关系数据库标准语言—SQL

对查询结果排序(续)例题[例24] 查询选修了3号课程的学生的学号及 其成绩,查询结果按分数降序排列。SELECT Sno,Grade FROM SC WHERE Cno= ' 3 ' ORDER BY Grade DESC;

2013-9-10

CH3 关系数据库标准语言—SQL

对查询结果排序(续)[例25] 查询全体学生情况,查询结果按 所在系的系号升序排列,同一系中的学 生按年龄降序排列。SELECT * FROM Student ORDER BY Sdept,Sage DESC;

2013-9-10

CH3 关系数据库标准语言—SQL

四、使用集合函数方法

5类主要集合函数 计数

COUNT([DISTINCT|ALL] *)COUNT([DISTINCT|ALL] <列名>) 计算总和

SUM([DISTINCT|ALL] <列名>) 计算平均值

AVG([DISTINCT|ALL] <列名>)

2013-9-10

CH3 关系数据库标准语言—SQL

使用集合函数(续)

5类主要集合函数(续)求最大值 MAX([DISTINCT|ALL] <列名>) 求最小值 MIN([DISTINCT|ALL] <列

名>)

2013-9-10

CH3 关系数据库标准语言—SQL

使用集合函数 (续)例题[例26] 查询学生总人数。 SELECT COUNT(*) FROM Student; [例27] 查询选修了课程的学生人数。 SELECT COUNT(DISTINCT Sno) FROM SC;

2013-9-10

CH3 关系数据库标准语言—SQL

2013-9-10

CH3 关系数据库标准语言—SQL

使用集合函数 (续)[例28] 计算1号课程的学生平均成绩。SELECT AVG(Grade) FROM SC WHERE Cno= ' 1 ';

[例29] 查询选修1号课程的学生最高分数。

2013-9-10

CH3 关系数据库标准语言—SQL

对查询结果分组 (续)方法(参照后面例题)

使用GROUP BY子句分组 分组方法:按指定的一列或多列值分组,值相等

的为一组 使用GROUP BY子句后,SELECT子句的列名列

表中只能出现分组属性和集合函数 GROUP BY子句的作用对象是查询的中间结果

2013-9-10

CH3 关系数据库标准语言—SQL

例题[例30] 求各个课程号及相应的选课人数。SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno; 结果 Cno COUNT(Sno) 1 2 3 4 52013-9-10

22 34 44 33 48CH3 关系数据库标准语言—SQL 18

例题[例31] 求各个课程号及相应的课程成绩在90分以上的学生人数。 select cno,count(sno) from sc where grade>=90 group by cno; 结果 Cno COUNT(Sno) 1 13 2 7 4 3 5 82013-9-10 CH3 关系数据库标准语言—SQL 19

对查询结果分组 (续)方法

(续)

使用HAVING短语筛选最终输出结果 只有满足HAVING短语指定条件的组才输出

2013-9-10

CH3 关系数据库标准语言—SQL

例题[例32] 查询选修了1门以上课程的学生学号。SELECT Sno

FROM SC GROUP BY Sno HAVING COUNT(cno) >=2;

2013-9-10

CH3 关系数据库标准语言—SQL

本文来源:https://www.bwwdw.com/article/o0ej.html

Top