先创建三个表:
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';