关系数据库语言SQL2

关系数据库语言SQL2

ID:39229782

大小:403.00 KB

页数:40页

时间:2019-06-28

关系数据库语言SQL2_第1页
关系数据库语言SQL2_第2页
关系数据库语言SQL2_第3页
关系数据库语言SQL2_第4页
关系数据库语言SQL2_第5页
资源描述:

《关系数据库语言SQL2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章关系数据库语言SQL4.2查询语句4.2.1基本查询4.2.2使用列表达式4.2.3WHERE从句的进一步使用4.2.4数据汇总4.2.5连接查询4.2.6嵌套查询4.2.7联合查询4.2.8使用系统内置函数的查询SQL查询语句的完整语法描述如下:SELECT[ALL

2、DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC

3、DESC]];温故知新:回忆:WHERE从句常用的查询

4、条件查询条件谓词比较=,>,<,>=,<=,!=,<>,!>,!<确定范围Betweenand,notbetweenand确定集合In,notin字符匹配Like,notlike空值Isnull,isnotnull多重条件And,or4.2.4数据汇总(1)聚合函数Count([distinct

5、all]*)统计元组(记录)个数Count([distinct

6、all]<列名>)统计一列中值的个数Sum([distinct

7、all]<列名>)求一列值的总合(数值型)Avg([distinct

8、all]<列名>)求一列值的平均数Max([distinct

9、

10、all]<列名>)求一列值中的最大值Min([distinct

11、all]<列名>)求一列值中的最小值例:查询学生总数例题1:比较:selectcount(*)as学生数fromstu_info和selectcount(xh)fromstu_info(因为学号是主码,所以没有空值,以上计算结果相同)例题2:selectcount(bh)fromstu_infoselectcount(distinctbh)fromstu_info若将bh换成xbm?例:查询学生选修高等数学的最高分和最低分。Selectmax(kscj)as'高等数学最高分’,min(ks

12、cj)as'高等数学最低分'FromxkWherekch='090101'例:已知数据库表XK中高等数学课程的代码为090101,查询学生选修高等数学的平均成绩:selectavg(KSCJ)as高数平均分fromXKwhereKCH='090101’(2)GROUPBY子句Groupby子句将查询结果表按某一列或多列值分组,值相等的分为一组。常常与聚合函数联合使用,用于针对分组进行统计汇总,使的每个分组都有一个函数值。如:在表xk中查询各课程编号及相应的选课人数SELECTkch,count(xh)as选课人数FROMxkGROUPBYkch如何理解

13、Groupby思考:用销售人员编号来分组的话,分几组?结果是一个关系(二维表)吗?有几个元祖?用count能求出什么?用sum能求出什么?还可以用什么来分组?(3)HAVING短语HAVING短语指定分组或聚合的条件。只有满足条件的分组才被选出来,列出来,HAVING通常与GROUPBY子句一起使用。例:查询选修了3门以上课程的学生及选课数:SELECTXH,COUNT(*)FROMxkGROUPBYXHHAVING(COUNT(*)>3)例:只查询选修了3门以上课程的学号前4位是2010的学生的学号及选课数。SELECTXH,COUNT(*)FROM

14、xkWHERE(XHLIKE‘2010%’) //位置不能放后面GROUPBYXHHAVING(COUNT(*)>3)Where与having有什么区别?Having短语指定选择组的条件,只有满足条件的组才被选出来。Where子句从基本表中选择满足条件的元组,而不是指定满足条件的分组,这是二者的根本区别。若一个查询同时涉及两个以上的表,称为连接查询。连接查询是关系数据库中最主要的查询,包括等值连接、自然连接、非等值连接、自身连接、外连接、内连接、左连接、右连接查询。我们重点学习的是等值连接。4.2.5连接查询连接查询中用来连接两个关系的条件称为连接条件

15、或连接谓词,格式:[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>其中比较运算符主要有:=、>、<、>=、<=、!=当连接运算符为=时,叫等值连接。使用其它运算符称为非等值连接。连接谓词中的列名称为连接字段。等值连接举例学号姓名090101张三090102李四学号课程号成绩090101019509010102780901010688Student.学号姓名Course.学号课程号成绩090101张三0901010195090101张三0901010278090101张三0901010388studentCourseStudent与co

16、urse表的等值连接例:查询每个学生及其选课情况selectstu_info.*,xk.*Fr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。