mysql 06章_分组查询和链接查询
2024-09-27 20:57:56
一、分组查询
在进行查询时,通常需要按某个或某些字段进行一些统计,因此就需要使用分组查询,但分组后通常需要与聚合函数使用,分组才有意义。
语法: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;
最新文章
- 关于Spring的核心组件以及概念
- 复制文件的问题:使用FileInputStream和FileOutputStream实现文件复制
- node-webkit 使用requirejs 小结
- js 实现类似php函数number_format的功能
- 读javascript高级程序设计17-在线检测,cookie,子cookie
- ubuntu12.04安装搜狗输入法和配置
- 用户层获取TEB PEB结构地址 遍历进程模块.doc
- [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定
- paip.花生壳 服务启动失败 以及不能安装服务,权限失败的解决
- phpmyadmin导入sql数据的纠结
- 贴图在Unity中的设置
- 由window.history.back()引发的问题
- string和stringbuilder
- Redis系统学习 五、管理
- JavaScript 面向对象(一)
- EL与JSTL
- 微服务SpringCloud无法进行服务消费
- Chronic sleep loss cannot be cured that easily
- Centos7.5 安装Netdata
- for循环语句个人小结
热门文章
- 将.opt、.frm、.MYD、.MYI文件放入mysql
- &;与&;&;,|与||的区别
- 49-Ubuntu-其他命令-1-文件软链接
- Ubuntu建立和删除用户
- winfrom创建转圈等待窗体
- Java中++操作是同步的吗?为什么?
- 二.Python基础语法和数据类型
- UNLISTEN - 停止监听通知信息
- 深度探索C++对象模型读书笔记-第七章站在对象模型的尖端
- 笔记37 Spring Web Flow——流程的组件