当前位置:   article > 正文

mysql查询年龄大于18的女生_day06python数据库mysql之多表查询

mysql查询年龄大于18的女生_day06python数据库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),('wupeiqi','male',38,201),('yuanhao','female',28,202),('liwenzhou','male',18,200),('jingliyang','female',18,204);

查看表:

ea2057cebcb361051d34fa0aa1e77de1.png

c1aae3dbdd6b2df588ea4bc91ba6d150.png

多表连接查询

交叉连接:不适用任何匹配条件。生成笛卡尔积

select * from employee1 ,department;

内连接:找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出正确的结果(只连接匹配的行)。

#找两张表共有的部分,相当于利用条件从笛卡尔积结果中筛选出了正确的结果#department没有204这个部门,因而employee表中关于204这条员工信息没有匹配出来select * from employee1,department where employee1.dep_id=department.id;#上面用where表示的可以用下面的内连接表示,建议使用下面的那种方法select * from employee1 inner join department on employee1.dep_id=department.id;#也可以这样表示哈select employee1.id,employee1.name,employee1.age,employee1.sex,department.name from employee1,department where employee1.dep_id=department.id;

注意:内连接的join可以忽略不写,但是还是加上看起来清楚点

a3e356353528acdc978df03fbf43618f.png

左连接:优先显示左表全部记录。

#左链接:在按照on的条件取到两张表共同部分的基础上,保留左表的记录select * from employee1 left join department on department.id=employee1.dep_id;select * from department left join  employee1 on department.id=employee1.dep_id;

a45c715f9ce2a606d238c148f6a84090.png

513883033d081abec39484ea3313a033.png

右链接:优先显示右表全部记录。

#右链接:在按照on的条件取到两张表共同部分的基础上,保留右表的记录select * from employee1 right join department on department.id=employee1.dep_id;select * from department right join employee1 on department.id=employee1.dep_id;

4b0e3b35a48fceff244086b3c8c99a72.png

2dc7c8cd7fb16173caa325c03124f451.png

全外连接:显示左右两个表的全部记录。

注意:mysql不支持全外连接 full join

强调:mysql可以使用union间接实现全外连接

select * from employee1 left join department on department.id=employee1.dep_id unionselect * from employee1 right join department on department.id=employee1.dep_id;

7c5b3c7cb7b84b6c7c11a13e8d5b94cf.png

符合条件连接查询

示例1:以内连接的方式查询employee和department表,并且employee表中的age字段值必须大于25,即找出公司所有部门中年龄大于25岁的员工

select * from employee1 inner join department on employee1.dep_id
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号