mysql 06章_分组查询和链接查询
一、分组查询
在进行查询时,通常需要按某个或某些字段进行一些统计,因此就需要使用分组查询,但分组后通常需要与聚合函数使用,分组才有意义。
语法:SELECT <字段列表|*> FROM 表名[WHERE <筛选条件1>][GROUP BY<分组字段列表> [HAVING <筛选条件2>]];
说明:a、having是对分组统计的结果进行筛选
b、where是在分组统计之前进行筛选
1、GROUP BY 单独使用:
/*举得例子由于电脑出现故障被我重装系统,找不到了*/
2、GROUP BY 结合HAVING 的使用: 3、GROUP BY 结合HAVING 、WHERE的使用: 二、连接查询
在实际应用过程中,往往都需要针对多张数据表进行查询,常用的有连接查询、子查询,
连接查询就是需要将多张表通过主外键的关联关系作为连接的筛选条件,满足条件的记录会被连接为一条条的虚拟记录,
从而扩展出我们项目需要的一些数据。
1、内连接:INNER JOIN
语法:SELECT <字段|*> FROM 表1 INNER JOIN 表2..... [WHERE <连接条件>];
说明:要保证前后表中主键或外键都要有的值才会被显示出来。
举例:
2、外连接
语法:SELECT <字段|*> FROM 表1 {LEFT | RIGHT | CROSS} JOIN 表2....... [ON <连接条件>];
1)左外连接:LEFT JOIN
说明:以左表为主,右表为辅,左表中有的主、外键都要显示,若右表中没有主、外键的记录使用NULL来代替。
2)右外连接:RIGHT JOIN
说明:与左外连接刚好相反
3)交叉连接:CROSS JOIN
说明:兼顾左表和右表,两个表的主键或外键值都有的数据才被显示,等价于“内连接”,“内连接”使用where关键字,交叉连接使用ON关键字添加连接条件
举例:
3、自连接:
说明:在某些特殊需求的情况下,需要将一张表当做多张表来看待,将他们连接在一起进行查询,
但本质他们是同一张表,因此自己与自己进行连接查询称为自连接查询
举例:-- 显示tb_emp表中的“员工编号”、“员工姓名”、“上司编号”、“上司姓名”
SELECT employee.empno 员工编号,employee.ename 员工姓名,manager.empno 上司编号,manager.ename 上司姓名
FROM tb_emp manager , tb_emp employee WHERE employee.MGR = manager.EMPNO;
mysql 06章_分组查询和链接查询的更多相关文章
- MySQL 07章_子查询
子查询就是查询中还可以嵌套其他的查询,通常是内层查询的结果作为外层查询的条件来使用 执行循序,自内向外依次执行 一.内层查询返回“单列单行”的结果 -- 1.查询宋江的出生日期 SELECT TIME ...
- MySQL 10章_视图、事务
一. 视图: 视图(view)是保存了查询语句的一种数据库对象,其数据来源是查询语句对应的数据表,他的结果与数据表查询的结果一样也是一张虚拟的数据表 . 为什么需要视图: ) 不同的用户关心的数据可能 ...
- SQL Server Form子查询、链接查询
所用数据表:用户,钱包,订单 一.from子查询 --查询钱包里金额大于30000 and User_ID = Users.ID) ) 二.链接查询 内连接(inner join)外连接(left/r ...
- MySQL 05章_模糊查询和聚合函数
在之前的查询都需要对查询的关机中进行“精确”.“完整”完整的输入才能查询相应的结果, 但在实际开发过程中,通常需要考虑用户可能不知道“精确”.“完整”的关键字, 那么就需要提供一种不太严格的查询方式, ...
- java oop第06章_异常处理
一. 异常的概念: 若程序都按我们事先设定的计划运行为正常执行,但通常会出现我们事先预料之外的其他情况,称为程序发生异常, 在java中会对一些可能出现异常的代码进行分类,达到尽量对可能发生的异常进行 ...
- MySQL 11章_索引、触发器
一. 索引: . 为什么要使用索引: 一本书需要目录能快速定位到寻找的内容,同理,数据表中的数据很多时候也可以为他们创建相应的“目录”,称为索引,当创建索引后查询数据也会更加高效 . Mysql中的索 ...
- mysql的优化_第十一篇(查询计划篇)
Mysql优化(出自官方文档) - 第十一篇(查询计划篇) 目录 Mysql优化(出自官方文档) - 第十一篇(查询计划篇) 1 EXPLAIN Output Format EXPLAIN Join ...
- mysql 09章_存储过程和函数
一. 函数和存储过程的相同点: 函数和存储过程都是事先预编译并保存在数据库中的特殊的数据库对象, 需要执行相应功能时就可以直接通过“函数名”.“存储过程”调用其中的代码,以提高执行效率和代码的复用性. ...
- Oracle_11gR2_概念_第06章_数据字典和动态性能视图_英文词汇
decode 解码 be intend for 适应 distinguished 显著的,突出的 implied 隐含的 abbreviated 简短的 enabled roles 已 ...
随机推荐
- Jeecg 3.8修改lhgDialog弹窗的样式
位置:F:\jeecg-bpm-3.8\eecg-bpm-3.8-master\jeecg-bpm-3.8\src\main\java\org\jeecgframework\core\util pub ...
- Gerrit(1): Manage Projects
1) Register an openid account https://login.ubuntu.com/+login 2) Custom settings set SSH pubkey set ...
- java.lang.Double.byteValue() 方法
java.lang.Double.byteValue() 方法(通过转换成一个字节)返回此Double为一个字节的值. 声明 以下是java.lang.Double.byteValue()方法的声明 ...
- CentOS7 网卡配置文件解释
注:此网卡配置文件摘自CentOS7.4.1708系统 Linux 默认配置网卡的信息 TYPE=Ethernet 网卡类型:以太网 PROXY_METHOD=none 代理方式:关闭状态 BROWS ...
- APP接口测试和功能测试点
- 微信小程序开发显示城市天气
本案例实现动态显示城市天气的功能,案例效果如下: 首先分析制作的思路: 1.在app.json文件的pages数组里加上main文件夹和template(模板)文件夹的路径. 2.在main.js文件 ...
- [HDU3333]Turing Tree
莫队模板题... 不过树状数组也可以做...跟HH的项链几乎一模一样,离线询问,然后记录前缀,更新的时候把前缀删掉就好了,然而这题开long long,卡空间 //hgs AK IOI,IMO,ICH ...
- 笔记38 Spring Web Flow——订单流程(定义基本流程)
做一个在线的披萨订购应用 实际上,订购披萨的过程可以很好地定义在一个流程中.我们首先从 构建一个高层次的流程开始,它定义了订购披萨的整体过程.接下 来,我们会将这个流程拆分成子流程,这些子流程在较低的 ...
- mysql 学习之1 mysql的基本语法
转载一位csdn中 乍得12138前辈的 转载:https://blog.csdn.net/qq_26200347/article/details/79781882
- ajax-jq
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...