mysql的多表查询实现方法
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,本篇文章给大家分享的是有关mysql的多表查询实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。多表查询有3种方式,分别是:1、传统
千家信息网最后更新 2024年11月29日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安全错误
数据库的锁怎样保障安全
网络安全保护的是什么意思
wps如何制作空白网页数据库
香港互联网科技公司排行榜
夏梦服务器
苹果终端怎么登录服务器
基于RO的多层数据库管理系统
数据库中日期拼接函数
服务器未正常运行
华邦互联网科技
阿里服务器 开放端口
教育网络安全的政策与形式答案
企业软件开发阶段计划
学软件开发来得及吗
数据库有任务一直执行
潍坊优搜网络技术有限公司 v
小学生网络安全教育班会课
宿州医疗软件开发要多少钱
今天同花顺服务器故障
深圳互联网科技软件开发公司经营范围
安徽省超级服务器云服务器
网络技术挑战赛的计划书
服务器动态口令管理系统
锐思基金数据库
数据库查询null怎么写
计算机网络技术c类
沂水app软件开发
戴尔存储服务器中小企业
模拟数据库异步客户端
长春求职软件开发
黑龙江特种网络技术基础