较复杂的数据库查询语句总结

在项目开发中遇到比较多的是多表连接查询所需要的较复杂查询语句,这里总结了一些用的比较多的查询语句的示例:

1.使用 like 关键字进行模糊查询,使用%%将要模糊查询的字符包裹:
示例:select * from student where name like %张%
2.使用 distinct 关键字来去重查询,将重复记录合并:
示例:select distinct age from student
3.使用 group by 关键字进行分组查询,常用作统计数据使用:
示例:select sex,count(*) from student group by sex
4.使用 group by 关键字进行分组查询,常用作统计数据使用,也可以多列分组查询:
示例1:select sex,count(*) from student group by sex
示例2:select sex,count(*) from student group by sex,age
5.使用 having关键字对分组查询结果进行帅选,也可以加上where进行筛选,where要放在前面:
示例:select sex,count(*) from student group by sex having count(*) > 3
示例:Select clzid from student where clzid > 1 group by clzid 
6.使用inner join关键字内连接查询两表共有的部分:
示例:Select * from student inner join clazz on student.clzid = clazz.id
示例:Select * from student,clazz where student.clzid = clazz.id
7.使用left join左连接,先把左边的表全部查询出来,再查出来右表共同的部分数据:
示例:Select * from student left join clazz on student.clzid = clazz.id
示例:Select * from student left join clazz on student.clzid = clazz.id where clazz.cid is null
8.使用right join左连接查出左表除共同部分以外的数据,右表数据为空:
示例:Select * from student right join clazz on student.clzid = clazz.id
示例:Select * from student right join clazz on student.clzid = clazz.id where clazz.cid is null
9.多表联合查询第三行语句就是对前两张表查询完的一个结果进行左连接:
示例:Select * from student 
	 inner join clazz on student.clzid = clazz.id
	 Left join subject on student.id = subject.id
10.子查询:把一张表的查询结果当成一个条件:
示例:Select * from student where clzid = (Select cid from clazz where name =’王老师’)
示例:Select * from student where clzid in (select cid from clazz)
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值