MySQL实现多表查询语句介绍
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,下面一起来了解下MySQL实现多表查询语句介绍,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL实现多表查询语句介绍这篇短内容是你想要的。创建表# 创建表create table depar
千家信息网最后更新 2025年11月07日MySQL实现多表查询语句介绍
下面一起来了解下MySQL实现多表查询语句介绍,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL实现多表查询语句介绍这篇短内容是你想要的。
创建表
# 创建表create table department(id int,name varchar(20));create table employee1(id int primary key auto_increment,name varchar(20),sex enum('male','female') not null default 'male',age int,dep_id int);# 插入数据insert into department values(200,'技术'),(201,'人力资源'),(202,'销售'),(203,'运营');insert into employee1(name,sex,age,dep_id) values('egon','male',18,200),('alex','female',48,201),('tom','male',38,201),('yuanhao','female',28,202),('lidawei','male',18,200),('jinkezhou','female',18,204);# 查看表mysql> select * from employee1;+----+-----------+--------+------+--------+| id | name | sex | age | dep_id |+----+-----------+--------+------+--------+| 1 | egon | male | 18 | 200 || 2 | alex | female | 48 | 201 || 3 | tom | male | 38 | 201 || 4 | yuanhao | female | 28 | 202 || 5 | lidawei | male | 18 | 200 || 6 | jinkezhou | female | 18 | 204 |+----+-----------+--------+------+--------+6 rows in set (0.00 sec)mysql> select * from department;+------+--------------+| id | name |+------+--------------+| 200 | 技术 || 201 | 人力资源 || 202 | 销售 || 203 | 运营 |+------+--------------+4 rows in set (0.00 sec)多表连接查询
交叉连接
交叉连接:不适用任何匹配条件。生成笛卡尔积
mysql> select * from employee1 ,department;
内连接
内连接:找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果。(只连接匹配的行)
# 找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果#department没有204这个部门,因而employee表中关于204这条员工信息没有匹配出来mysql> select * from employee1,department where employee1.dep_id=department.id;#上面用where表示的可以用下面的内连接表示,建议使用下面的那种方法mysql> select * from employee1 inner join department on employee1.dep_id=department.id;# 也可以这样表示哈mysql> select employee1.id,employee1.name,employee1.age,employee1.sex,department.name from employee1,department where employee1.dep_id=department.id;
左连接left
优先显示左表全部记录。
#左链接:在按照on的条件取到两张表共同部分的基础上,保留左表的记录mysql> select * from employee1 left join department on department.id=employee1.dep_id;mysql> select * from department left join employee1 on department.id=employee1.dep_id;
右连接right
优先显示右表全部记录。
#右链接:在按照on的条件取到两张表共同部分的基础上,保留右表的记录mysql> select * from employee1 right join department on department.id=employee1.dep_id;mysql> select * from department right join employee1 on department.id=employee1.dep_id;
全部连接join
mysql> select * from department full join employee1;
符合条件多表查询
示例1:以内连接的方式查询employee和department表,并且employee表中的age字段值必须大于25,
即找出公司所有部门中年龄大于25岁的员工
mysql> select * from employee1 inner join department on employee1.dep_id=department.id and age>25;
示例2:以内连接的方式查询employee和department表,并且以age字段的升序方式显示
mysql> select * from employee1 inner join department on employee1.dep_id=department.id and age>25 and age>25 order by age asc;
子查询
#1:子查询是将一个查询语句嵌套在另一个查询语句中。#2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。#3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字#4:还可以包含比较运算符:= 、 !=、> 、<等
示例:
# 查询平均年龄在25岁以上的部门名mysql> select name from department where id in ( select dep_id from employee1 group by dep_id having avg(age) > 25 );# 查看技术部员工姓名mysql> select name from employee1 where dep_id = (select id from department where name='技术');# 查看小于2人的部门名mysql> select name from department where id in (select dep_id from employee1 group by dep_id having count(id) < 2) union select name from department where id not in (select distinct dep_id from employee1);# 提取空部门 #有人的部门mysql> select * from department where id not in (select distinct dep_id from employee1);
看完MySQL实现多表查询语句介绍这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
查询
语句
条件
结果
技术
部分
部门
员工
方式
示例
笛卡尔
人力
人力资源
信息
内容
基础
字段
年龄
更多
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全风险管控的要求
框式服务器
数据库怎么进入修改页面
萤石云如何传输到自己的服务器
博睿互联网科技有限公司
网络安全意识人民日报
was应用程序服务器在哪找
中国金融科技软件开发公司排名
虹口区创新数据库收费标准
滦州品牌软件开发创造辉煌
数据库 查找重复多字段
数据库技术试卷及答案
初中生怎么学习网络技术
湖南软件开发行业协会
护航网络安全的方法
产品样本数据库
企业级数据库集群架构
化魔数据库
部署项目数据库ip
app软件开发学哪个专业好
大智慧 数据库
山东省存储服务器零售商
县公安局有网络安全办公室
柯美6500服务器硬盘
xml 存数据库
浙江服务器网络机柜服务器
蓝鸟软件开发工具
网络安全教案信息技术
新装电脑如何连接公司服务器
违反信息和网络安全管理制度