服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL基础之多表查询案例分享

MySQL基础之多表查询案例分享

2022-11-29 15:51木木止月 Mysql

这篇文章主要为大家分享了几个MySQL基础中的多表查询案例,文中的示例代码简洁易懂,对我们学习MySQL有一定的帮助,需要的小伙伴可以了解一下

多表查询案例

数据环境准备

create table salgrade(
grade int,
losal int,
hisal int
) comment "薪资等级表";
insert into salgrade values (1,0,3000);
insert into salgrade values (2,3001,5000);
insert into salgrade values (3,5001,8000);
insert into salgrade values (4,8001,10000);
insert into salgrade values (5,10001,15000);
insert into salgrade values (6,15001,20000);
insert into salgrade values (7,20001,25000);
insert into salgrade values (8,25001,30000);

在这个案例中,我们主要运用上面所讲解的多表查询的语法,完成以下的12个需求即可,而这里主要涉及到的表就三张:emp员工表、dept部门表、salgrade薪资等级表 。

查询员工的姓名、年龄、职位、部门信息 (隐式内连接)

表: emp , dept

连接条件: emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e , dept d where e.dept_id = d.id;

MySQL基础之多表查询案例分享

查询年龄小于30岁的员工的姓名、年龄、职位、部门信息(显式内连接)

表: emp , dept

连接条件: emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e inner join dept d on e.dept_id =d.id where e.age < 30;

MySQL基础之多表查询案例分享

查询拥有员工的部门ID、部门名称

表: emp , dept

连接条件: emp.dept_id = dept.id

select distinct d.id , d.name from emp e , dept d where e.dept_id = d.id;

MySQL基础之多表查询案例分享

查询所有年龄大于40岁的员工, 及其归属的部门名称; 如果员工没有分配部门, 也需要展示出来(外连接)

表: emp , dept

连接条件: emp.dept_id = dept.id

select e.*, d.name from emp e left join dept d on e.dept_id = d.id where e.age >40 ;

MySQL基础之多表查询案例分享

查询所有员工的工资等级

表: emp , salgrade

连接条件 : emp.salary >= salgrade.losal and emp.salary <= salgrade.hisal

-- 方式一
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary >=
s.losal and e.salary <= s.hisal;
-- 方式二
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary
between s.losal and s.hisal;

MySQL基础之多表查询案例分享

到此这篇关于MySQL基础之多表查询案例分享的文章就介绍到这了,更多相关MySQL多表查询内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://juejin.cn/post/7159032887508434957

延伸 · 阅读

精彩推荐