MySQL -> DQL:相关子查询(exists),分页查询(limit),联合查询(union)

相关子查询:exists判断存不存在,返回值1或者0

"查询存在的id":存在就返回1,没有任何数据就返回0
select exists(
	select id
	from);
"查询员工id,条件必须存在id为100的员工":
存在就返回1,输出(这里输出是输出所有id,不是id只是100,exists只是返回10,不会筛选掉id!=100的数据)
没有任何数据就返回0,啥也不输出(这就真不输出了,只要数据中没有id=100,就什么也不输出)
select id
fromwhere exists(
	select id
	fromwhere id = 100
);

分页查询:limit:限制,limit放在SQL语句的最后面,也是最后面执行的语句

select * from limit 0,5;# 从第0条开始,一共5条,这里第一条的位置是0,跟java一样0开始
select * from limit 5;# 如果是0开始的,0可以省略,直接写多少条
select * from limit (page-1)*size,size;# 动态的分页,从什么位置开始和多少条动态获取,不写死
select * from limit (page-1)*10,10;//page=1,则从0-9共10条数据,page=2则10-20的数据,3则20-30,条数随page动态变化;

联合查询:union;union all

主要查询两个没啥关联的表字段,查询表中的一些数据;
查询的条件:多个表查询的字段格式一样,
比如A的id,B也查询类型id的字段,A查询两个字段,B也一定是查询两个字段且格式差不多
否则,名字在id的位置,id在name的位置,不好看

"查询表A中的id,name,和表B中的id,name":union,默认去重
select id,name from A
union
select t_id,t_name from B
"查询表A中的id,name,和表B中的id,name":union all,不去重
select id,name from A
union all
select t_id,t_name from B

"错误情况": 不会报错没也会显示,但是id位置出现name就没意义了
select id,name from A
union
select t_name,t_id from B

"错误情况": A是select两个字段,Bselect三个字段,直接报错
select id,name from A
union
select t_name,t_id,t_age from B
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值