mysql的多表查询实现方法
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇文章给大家分享的是有关mysql的多表查询实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。多表查询有3种方式,分别是:1、传统
千家信息网最后更新 2025年11月09日mysql的多表查询实现方法
本篇文章给大家分享的是有关mysql的多表查询实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
多表查询有3种方式,分别是:1、传统方式,包括左外连接查询,右外连接查询 ,完全外链接查询;2、子查询方式,包括单行查询,多行查询;3、聚合查询方式,包括求和,平均查询,记录总数。
多表查询有3种方式,分别是:
一、传统方式
/*-- 传统连接方式 --*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno /*--natural join 两张表中只有一个同名栏位时行连接 --*/ select e.ename,d.dname from dept d natural join emp e /*--using 两个表中有多个同名栏位时 --*/ select e.ename,d.dname from dept d join emp e using(deptno)
1、左外连接查询
/*--左外连结 左表的全部记录(部门表中的所有记录:demp)-- */ /*--方式1--*/ select e.ename,d.dname from dept d left outer join emp e on d.deptno = e.deptno /*--方式2--*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno(+)
2、右外连接查询
/*--左外连结 左表的全部记录(部门表中的所有记录:demp)-- */ /*--方式1--*/ select e.ename,d.dname from dept d left outer join emp e on d.deptno = e.deptno /*--方式2--*/ select e.ename,d.dname from dept d , emp e where d.deptno = e.deptno(+)
3、完全外链接查询
/*--完全外连结(匹配与不匹配)-- (包括部门表及员工表中的所有记录)*/ select e.ename,d.dname from dept d full outer join emp e on d.deptno = e.deptno
二、子查询(单、多行)
1、单行查询
/*--子查询(单行,多行)--*/ select * from emp where sal > (select avg(sal) from emp) /*--单行子查询可以引用(=,>,>=,<,<=,<>)操作符 --*/ select * from emp e where e.deptno=(select d.deptno from dept d where d.deptno=1 )
2、多行查询
/*--多行子查询可以引用(in,any,all)操作符--*/ select * from emp e where e.deptno in(select d.deptno from dept d) /*-- any 比较返回值中的任何一个,其中一个满足,则返回true --*/ select * from emp e where e.sal < any(select sal from emp where deptno=2) /*-- all 比较返回值中的所有,全部满足,则返回true --*/ select * from emp e where e.sal < all(select sal from emp where deptno=2)
三、聚合查询(求和,平均,记录总数)
1、求和,平均查询
/*--求和,平均 --*/ select sum(sal),avg(sal) from emp select avg(nvl(sal,0)) from emp
2、记录总数
/*--记录总数 --*/ select count(*) from emp select count(memo) from emp /*--统计该栏非空记录 --*/ select count(distinct(sex)) from emp /*--去掉重复记录 --*/ /*-- group by --*/ select e.deptno,sum(e.sal) from emp e group by e.deptno /*-- group by having --*/ select e.deptno,avg(e.sal) from emp e group by e.deptno having avg(e.sal) > 4500
以上就是mysql的多表查询实现方法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
查询
方式
多行
总数
传统
部门
方法
操作符
更多
知识
篇文章
链接
实用
时行
两个
只有
员工
多个
就是
工作会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咪咪扑克软件开发商
网络安全手游概念
上海多米网络技术有限公司
软件开发岗位复试
山西网络技术与应用专科
陕西九思连强互联网科技
服务器数据与版本不对应
无锡国安网络技术有限公司
浪潮服务器工程师
秦皇岛海蒂软件开发
首都网络安全日第七届
深圳新飞通网络技术
辽宁现代软件开发公司
未来教育三级网络技术手机端
有没有服务器维修专业
访问文件服务器视频
数据库限定数据的输入格式是
合肥软件开发的学校
linus数据库
网络安全形势可控
紫金网络安全ppt
应用现代网络技术的同义词
hive的数据库
如何完成网络安全检查
黔江区一站式网络技术供应商家
海南 服务器托管
淮安诚邦网络技术
叁稻友互联网科技
称重软件数据库打不开怎么回事
上海风虎AI人工智能服务器