mysql多表查询练习题

目录

多表连接查询

-- 创建部门表

-- 创建员工表

-- 给dept3表添加数据

-- 给emp3表添加数据

问题

1、查询每个部门的所属员工

2、查询研发部门的所属员工

3、查询研发部和销售部的所属员工

4、查询每个部门的员工数,并升序排序

5、查询人数大于等于3的部门,并按照人数降序排序


多表连接查询

-- 创建部门表

create table if not exists dept3(
deptno varchar(20) primary key , -- 部门号
name varchar(20) -- 部门名字
);

-- 创建员工表

create table if not exists emp3(
eid varchar(20) primary key , -- 员工编号
ename varchar(20), -- 员工名字
age int, -- 员工年龄
dept_id varchar(20) -- 员工所属部门
);

-- dept3表添加数据

insert into dept3 values('1001','研发部');
insert into dept3 values('1002','销售部');
insert into dept3 values('1003','财务部');
insert into dept3 values('1004','人事部');

-- emp3表添加数据

insert into emp3 values('1','乔峰',20, '1001');
insert into emp3 values('2','段誉',21, '1001');
insert into emp3 values('3','虚竹',23, '1001');
insert into emp3 values('4','阿紫',18, '1001');
insert into emp3 values('5','扫地僧',85, '1002');
insert into emp3 values('6','李秋水',33, '1002');
insert into emp3 values('7','鸠摩智',50, '1002');
insert into emp3 values('8','天山童姥',60, '1003');
insert into emp3 values('9','慕容博',58, '1003');
insert into emp3 values('10','丁春秋',71, '1005');

问题

1、查询每个部门的所属员工

select deptno,name,ename from dept3 d,emp3 e where d.deptno=e.dept_id;

2、查询研发部门的所属员工

select deptno,name,ename from dept3 d,emp3 e where d.deptno=e.dept_id and d.name='研发部';

3、查询研发部和销售部的所属员工

 select deptno,name,ename from dept3 d,emp3 e where d.deptno=e.dept_id and d.name in ('研发部','销售部');

4、查询每个部门的员工数,并升序排序

select deptno,name,count(1) from dept3 d,emp3 e where d.deptno=e.dept_id gpt_id group by deptno order by count(1) asc;

5、查询人数大于等于3的部门,并按照人数降序排序

select deptno,name,count(1) from dept3 d,emp3 e where d.deptno=e.dept_id  group by deptno having count(1)>=3 order by count(1) desc;

你可能感兴趣的:(mysql,数据库)