如何管理MySQL?(SQL的增删改查3){第一阶段-1.4}

1,简单查询

1,条件查询

 查询部门编号为10的员工:

 select *from emp where deptid='10'

 举例:查询部门编号为null的员工

select *from emp where deptid is null

 练习:满足7000以上的女员工

select *from emp where salary>7000 and sex='0'

 2,复杂查询

子查询

示例:查询出高于平均工资的值

 步骤一:查询出平均工资——11125

select avg(salary) from emp;

步骤二:查询出工资大于11125的员工

select*from emp where salary >11125;

综合:

select *from emp where salary>select avg(salary) from emp;

练习:查询出和timi同一个部门的员工有哪些?

select *from emp where eid=(select   *from emp where eid='timi');

步骤一 : 

select deptid from emp where ename="timi";

步骤二:

select *from emp where deptid=20;

所以综合起来就是:

select *from emp where deptid=(select deptid from emp where ename="timi")  and ename!='timi';

不包括‘timi’加上

and ename!='timi'

练习:查询和'timi'同一年出生的年份

 year()获取日期中的年份

3,多表查询

多表查询的数据他是分布在多个表里的

示例:查询所有员工的姓名及其部门名称

select ename,dname from emp,dept;

 4,连接

1,内连接

select ename,dname from emp inner join dept on deptid=did;

 2,左外连接

select 左数据项,右数据项 from 左数据表 左外显示 右表格 on 左数据=右边数据;

显示左侧表中所有记录,先写那个那个就是做

 3, RIGHT外连接 

 select 左数据项,右数据项 from 左数据表 左外显示 右表格 on 左数据=右边数据;

 

select ename,dname from emp right outer join dept on deptid=did;

显示右侧表中所有记录,后写那个那个就是右

左外和右外显示中outer关键字可以省略

4,全连接

同时显示,左侧和右侧表中所以记录

full join.. on

 mysql 不支持此链接

实现方法:

 union all 联合后不合并相同的项目

 union 联合后合并相同的项目

select ename,dname from emp left outer join dept on deptid=did;

union all;

select ename,dname from emp right outer join dept on deptid=did;

select ename,dname from emp left outer join dept on deptid=did)union all (select ename,dname from emp right outer join dept on deptid=did;

 解决方案:将左外和右外连接进行联合,合并相同的相

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿山同学.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值