MYSQL聚合函数分组查询和连接查询(一般人我不告诉他)废寝忘食只为博君一赞!
Posted 阿伟丫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL聚合函数分组查询和连接查询(一般人我不告诉他)废寝忘食只为博君一赞!相关的知识,希望对你有一定的参考价值。
聚合函数和分组查询
排序语法
ORDER BY 字段名 ASC (升序排列(默认))
ORDER BY 字段名 DESC (降序排列)
例:SELECT 字段名 FROM 表名 ORDER BY 字段;
分组查询
GROUP BY 字段名
例:SELECT 字段名 FROM 表名 GROUP BY 字段;
区别:
1、GROUP BY 和 ORDER BY——先分组在排序
GROUP BY:按字段进行独立分组
ORDER BY:按照要求对某字段进行排序,可以升降序
2、WHERE 和 HAVING——后面接条件表达式
WHERE:分组之前选择符合条件的记录
HAVING:分组之后过滤掉不符合条件的数据
连接查询:
分类:
内连接
1、 交叉连接(笛卡尔积)——语法
介绍:通俗而言,笛卡尔积就是两个集合中的每一个成员都与对方集合中的任意一个成员有关联。
交叉连接:两张表A和B的所有数据组合在一起,造成大量数据沉余
语法:SELECT * FROM 表1 CROSS JOIN 表2
2、内连接
内连接查询概要:内连接是应用程序中非常常见的连接操作,它一般都是默认的连接类型。内连接基于连接谓词,它将两张表(如A和B)的列组合在一起,产生新的结果表。内连接查询会将A表的每一行和B表的每一行进行比较,并找出满足连接谓词的组合。当连接谓词被满足,A和B中匹配的行会按列组合(并排组合)成结果集中的一行。
语法:
内连接查询:(主键连外键)
不常用写法:SELECT * FROM family(表1) f JOIN infor(表2) i
常用写法:SELECT * FROM 表1 首字母,表2 首字母
WHERE 表一首字母.(主/外键)=表2首字母.(主/外键)
例:
SELECT * FROM fima f,info i WHERE f.name=i.name
3、多表链接——两两链接
介绍:如果查询信息来源于多张表,则可通过两两相连的方式建立多表链接查询。
语法:
SELECT * FROM family(表1) f(表1首字母),information(表2) i(表2首字母),score(表3) s(表3首字母) WHERE f.name(family表的主/外键)=i.name(information表的主/外键) AND s.studentNo(score的主/外键)=i.studentNo(information表的主/外键)
4、外连接
外连接查询概要:在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。
语法:
SELECT 字段名称 FROM 表名1 LEFT|RIGHT|FULL[OUTER](OUTER可省略) JOIN 表名2 ON 表名1.字段名1=表名2.字段名2
左外连接(LEFT JOIN)
在左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为null
右外连接(RIGHT JOIN):
右外连接是左外表连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为null。
以上是关于MYSQL聚合函数分组查询和连接查询(一般人我不告诉他)废寝忘食只为博君一赞!的主要内容,如果未能解决你的问题,请参考以下文章