一、分组查询
在进行查询时,通常需要按某个或某些字段进行一些统计,因此就需要使用分组查询,但分组后通常需要与聚合函数使用,分组才有意义。
语法: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章_分组查询和链接查询的更多相关文章

  1. MySQL 07章_子查询

    子查询就是查询中还可以嵌套其他的查询,通常是内层查询的结果作为外层查询的条件来使用 执行循序,自内向外依次执行 一.内层查询返回“单列单行”的结果 -- 1.查询宋江的出生日期 SELECT TIME ...

  2. MySQL 10章_视图、事务

    一. 视图: 视图(view)是保存了查询语句的一种数据库对象,其数据来源是查询语句对应的数据表,他的结果与数据表查询的结果一样也是一张虚拟的数据表 . 为什么需要视图: ) 不同的用户关心的数据可能 ...

  3. SQL Server Form子查询、链接查询

    所用数据表:用户,钱包,订单 一.from子查询 --查询钱包里金额大于30000 and User_ID = Users.ID) ) 二.链接查询 内连接(inner join)外连接(left/r ...

  4. MySQL 05章_模糊查询和聚合函数

    在之前的查询都需要对查询的关机中进行“精确”.“完整”完整的输入才能查询相应的结果, 但在实际开发过程中,通常需要考虑用户可能不知道“精确”.“完整”的关键字, 那么就需要提供一种不太严格的查询方式, ...

  5. java oop第06章_异常处理

    一. 异常的概念: 若程序都按我们事先设定的计划运行为正常执行,但通常会出现我们事先预料之外的其他情况,称为程序发生异常, 在java中会对一些可能出现异常的代码进行分类,达到尽量对可能发生的异常进行 ...

  6. MySQL 11章_索引、触发器

    一. 索引: . 为什么要使用索引: 一本书需要目录能快速定位到寻找的内容,同理,数据表中的数据很多时候也可以为他们创建相应的“目录”,称为索引,当创建索引后查询数据也会更加高效 . Mysql中的索 ...

  7. mysql的优化_第十一篇(查询计划篇)

    Mysql优化(出自官方文档) - 第十一篇(查询计划篇) 目录 Mysql优化(出自官方文档) - 第十一篇(查询计划篇) 1 EXPLAIN Output Format EXPLAIN Join ...

  8. mysql 09章_存储过程和函数

    一. 函数和存储过程的相同点: 函数和存储过程都是事先预编译并保存在数据库中的特殊的数据库对象, 需要执行相应功能时就可以直接通过“函数名”.“存储过程”调用其中的代码,以提高执行效率和代码的复用性. ...

  9. Oracle_11gR2_概念_第06章_数据字典和动态性能视图_英文词汇

    decode 解码 be intend for  适应 distinguished 显著的,突出的 implied 隐含的 abbreviated     简短的 enabled roles    已 ...

随机推荐

  1. springboot上传图片大小限制

    背景:springboot项目上传图片超过1M报错,经了解,springboot默认上传文件1M 需求:更改默认配置,控制上传文件大小 方法:①更改配置文件(经试验不可行,不知道为什么):②更改启动B ...

  2. 人人开源打包jar

    先在renren-security执行mvn clean install 再到renren-admin目录下,执行mvn clean package,就可以打成renren-admin.jar 如果想 ...

  3. 5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)

    5.如何快速找到多个字典中的公共键(key) from random import randint,sample #随机取数 # a = sample("ABCDEF",randi ...

  4. 匈牙利算法实战codevs1022覆盖

    1022 覆盖    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解  查看运行结果     题目描述 Description 有一个N×M的单位方格中 ...

  5. mongo数组修改器—$push、$ne、$addtoset、$pop、$pull

    这几个方法也很有意思 $push 像已有的数组末尾加入一个元素,要是元素不存在,就会创建一个新的元素,如果元素存在了,就会再添加一个一模一样的元素,会造成元素的重复,所以在使用的时候,要确保该元素不存 ...

  6. 22-3concat

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 【NOI2019模拟2019.7.4】朝夕相处 (动态规划+BM)

    Description: 题解: 这种东西肯定是burnside引理: \(\sum置换后不动点数 \over |置换数|\) 一般来说,是枚举置换\(i\),则\(对所有x,满足a[x+i]=a[i ...

  8. 揭秘!2周实现上云上市,阿里云SaaS上云工具包如何打造新云梯?

    提到“上云”,很多人会理解成上IaaS,比如买一些计算.存储和网络云产品,把自己的应用系统部署上去.这的确是通常意义的上云.但对SaaS而言,需要从产品.商业.服务,三个维度考虑SaaS伙伴和客户的痛 ...

  9. alert样式优化

    //alert样式优化 function alert(msg, mode) { //mode为空,即只有一个确认按钮,mode为1时有确认和取消两个按钮 msg = msg || ''; mode = ...

  10. 好用的日期控件jeDate

    最近做公司后台系统关于仓库的一些东西,需要根据时间范围来导出一些数据,我们使用的后台框架是基于bs的,bs也有时间控件:bootstrap-datepicker是只能选择日期的, daterangep ...