多表查询 以些简单应用的代码

先创建三个表:

create table manger(
id int not null auto_increment primary key,
emp_id int,
foreign key(emp_id) references emp(id),
dep_id int,
foreign key(dep_id) references dep(id)
);
create table emp(
id int not null auto_increment primary key,
name varchar(255),
age int,
tel varchar(255),
dep_id int,
foreign key(dep_id) references dep(id)
);
create table dep(
id int not null auto_increment primary key,
name varchar(255),
floor varchar(255)
);

往表里插数据:

insert into emp(name,age,tel,dep_id) values('吴佳伟',11,'13528424982',1),('周琳胜',24,'13528424985',4),('平小洁',22,'13522424982',2),('冯年鹏',22,'13512345682',3),('陈志远',23,'15261942971',3),('周朋',34,'13243149825',1),('王杨洋',45,'13528424935',3),('顾飞翔',46,'13528424355',2),('王吉',11,'13528424982',2),('吴佳伟',30,'13522424982',4),('冯良骥',56,'13144249822',4),('杨山',48,'13534424982',4),('茅书铭',27,'13522334982',3);

insert into manger(emp_id,dep_id) values(1,1),(7,3),(3,2),(12,4);

insert into dep(name,floor) values('财务',3),('人事',2),('保安',1),('销售',3);


1.每个部门负责人的联系方式:
select emp.tel,emp.dep_id from emp inner join manger on emp.id = manger.emp_id;
2.每个人属于哪个部门:
select emp.name,dep.name from emp inner join dep on emp.dep_id = dep.id;
3.财务部的所有人员以及领导(id,name,age,tel,部门,负责人):
select emp.id,emp.name,emp.age,emp.tel,dep.name,manger.emp_id from manger 
inner join dep on manger.dep_id = dep.id
inner join emp on dep.id = emp.dep_id where dep.id = 1;

所有人员以及领导(id,name,age,tel,部门,负责人)
select emp.id,emp.name,emp.age,emp.tel,dep.name,manger.emp_id from manger 
inner join dep on manger.dep_id = dep.id
inner join emp on dep.id = emp.dep_id;

(以外出现)部门负责人的信息(id,name,age,tel,部门,负责人):
select emp.id,emp.name,emp.age,emp.tel,dep.name,manger.emp_id from manger 
inner join dep on manger.dep_id = dep.id
inner join emp on emp.id = manger.emp_id;

4.所有在3楼的人
select emp.name from emp inner join dep on emp.dep_id = dep.id where dep.floor = 3;

5.查询tel中以5结尾和中间包括24的所有人;
select emp.name as "姓名",emp.tel from emp  where tel like '%24%' and tel like '%5';

6.查询18-30的员工;
select emp.name,emp.age from emp where age between '18' and '30';

猜你喜欢

转载自blog.csdn.net/czy2457287516/article/details/81191468