mysql 查询高级命令_mysql常用命令(4)高级查询

嵌套子查询:

查询工资比张学友高的人的信息:

select * from wages where uwages>(select uwages from wages where name="张学友");

查询工资高于50000的人的信息  用嵌套来示范 in是包含 not in 是不包含:

select * from wages where uwages in (select uwages from wages where uwages>50000);

查询因为加班得到奖金的人:

select * from wages where name in (select name from bonus where breason="加班");

any:满足查询出来的数据任何一个即可

all: 必须满足所有

查询奖金比奖金表里“某一”人奖金低的信息:

用any:

select * from wages where name in (select name from bonus where howmuch from bonus));

用聚合函数 max 最大值:

select * from wages where name in (select name from bonus where howmuch

查询奖金比所有加班人员的奖金都少的人员的个人工资信息:

select * from wages where name in(select name from bonus where howmuch from bonus where breason="加班"));

内连接:

查询员工表与奖金表姓名相对应的信息:

select * from wages join bonus on wages.name=bonus.name;

内链接会查出两个表共有的数据

外连接:

左外连接:

查询员工表所有信息以及奖金表与员工表姓名相对应的信息:

select * from wages left join bonus on wages.name=bonus.name;

这时候左边的表会显示所有信息 右边的表根据左边的来 左边比他多 他就会显示几行null 左边比他少 他就会少显示几行

右外连接:

查询奖金表所有信息 员工表与奖金表姓名相同的信息:

select * from wages right join bonus on bonus.name=wages.name;

这时候会根据右边的表来查询 右边的表数据全部显示出来 左边依着右边来

交叉连接:

交叉联接也叫非限制联接,它将两个表不加任何约束的组合起来。在数学上,就是两个表的笛卡尔积。交叉联接后得到的行数是两个被联接表的行数的乘积。

查询员工表和奖金的数据 并且每一个条数据相比:

select * from wages cross join bonus;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值