第五章 表记录的查询(二)

4、聚合函数查询

一、聚合函数

(1)COUNT()函数

count(*) 返回数据表中的记录数(包含NULL值的空行)除count(*)外,其余聚合函数都会忽略空值 

substring(被截取的字符串,从第几位开始截取,截取长度)查询图书编号第一位到第五位是97871的行数

Select count(distinct 列名/字段名) from 表名; distinct是为避免重复计算相同的值

(2)SUM()函数和AVG()函数

SUM()函数的作用是求出表中某个列取值的求和,AVG()函数的作用是求出表中某个列取值的平均值

(3)MAX()函数和MIN()函数

MAX()函数的作用是求出表中某个列取值的最大值,MIN()函数的作用是求出表中某个列取值的最小值

二、分组聚合查询

(1)GROUP BY子句

1_1按单列分组

按照ReaderID列进行分组,记录每个读者的借书次数

1_2按多列分组

(2)HAVING子句

分组之前的条件要用WHERE关键字筛选记录,而分组之后的条件要用关键字HAVING子句筛选记录。

(3)GROUP BY 子句与WITH ROLLUP

画框线的部分能够使汇总行输出并输出在最后一行

5、多表连接查询

一、交叉连接

其中框线内容可以省略,交叉连接是没有where子句的语句

二、内连接(等值连接、不等值连接、自然连接)

2_1等值连接

在ON子句中连接两个表的条件称为连接条件,当连接条件中的比较运算符是“=”时,称为等值连接,通过inner join 关键字把多个表连接;

2_2不等值连接

比较运算符为“!=”时,称为不等值连接

2_3自然连接

可同时连接多个表,在自然连接时,会自动根据两张表中相同的列名进行数据的匹配。

2_4自连接

在borrow表中,选出和BookID的ReaderID相同的ReaderID

三、外连接

外连接生成的结果集不仅包含符合连接条件的行数据,而且还包括左表(左外连接时的表)或右表(右外连接时的表)中所有的数据行。

3_1左连接

book是主表,borrow是从表

 为从表中没有对应的地方添加NULL值

3_2右连接

右连接右边的是主表,左边是从表

从表中没有匹配值的地方添加NULL值

6、子查询

子查询的类型:标量子查询(包含一个行子查询和列子查询);表子查询(返回一个表);行子查询(返回一行);列子查询(返回一列)

子查询一般用在主查询的WHERE子句或HAVING子句中,与比较运算符或逻辑运算符一起构成WHERE筛选条件或HAVING筛选条件。

(1)选择列表中的子查询

子查询内部和外部一般不是同一个表,取book表中的Price来进行输出

(2)子查询生成派生表

当子查询的结果返回一个表(表子查询)时,则可以把该表子查询作为数据源。在from子句中可以使用子查询的结果集作为外层查询的源表,结果集也称为派生表,可以为派生表定义一个别名。

(3)WHERE子句中的子查询

3_1子查询与比较运算符组成条件

输出价格低于平均价格的书籍信息

3_2使用带IN关键字的子查询

当子查询的结果返回一行或返回一列时,就不能使用比较运算符,而要使用IN关键字,IN关键字用于检测给定的一个值是否存在于多个值的列表中

Where 查询表达式 IN (子查询语句)

3_3使用带EXISTS关键字的子查询

3_4使用ANY、SOME、或ALL的子查询

3_4_1使用ANY、SOME的子查询

查询男生中比某个女生出生年份晚的学生姓名和出生年份

3_4_2使用ALL的子查询

ALL的用法和ANY或SOME一样,也是把列值与子查询结果进行比较,但它不是要求任意结果值的列值为真,而是要求所有列的结果都为真。

查询男生中比所有女生出生年份晚的学生姓名和出生年份。

(4)用子查询插入、修改或删除记录

4_1用子查询插入记录

将book表中的BookID为9787111636222的行添加到book2表中

4_2用子查询修改记录

修改book2表中的BookID,将其改为数据结构这个书籍的BookID

4_3用子查询删除记录

删除book2表中,BookID和数据结构BookID相同的书籍的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值