常见sql 及关键字

 

  1. 一般条件查询
    • Select * from user where table_user_id = ?
      Select*from user where table_user_id in(id1,id2) 关键字 in

       

注意:如果是varchar需要单引号

    1. Select* from table_user where name like (‘%王%’) 关键字like

该图是mybatis中参数是list 通过foreach写法

  1. 一般分组查询结合聚合函数的使用
    1. Select count(*),age from table_user group by age 

按照年龄分组 统计每个年龄段的学生  关键字group by  count

    1. Select Sum(count) user from table_subject group by user

根据不同学生统计所有科目成绩之和 关键字 sum

    1. Select max(count) user from table_subject group by user

获取不同学生最高科目的成绩 关键字 max()

  1. Having 使用
    1. Select * from table_subject having count >60

统计成绩大于60的所有科目及学生信息关键字 having最基本

    1. Select Sum(count) counts user from table_subject group by user

 having counts > 300  关键字 group by having sum

按照学生统计所有科目总和大于300的(having结合聚合函数使用)

  1. 连接查询的使用 主要left join 和join 使用
    1. Select * from table_student a Left join table_subject b on a.id = b.student_id
      Select * from table_student a join table_subject b on a.id = b.student_id

       

A和B中的例子left join 和join 的意思主要是a中的left join 指的是即使a和b不会关联到也会查询a表中所有数据而join则是只查询和a和b能关联的数据

第三个例子是工作中一个用了较多关键字的一个sql

Ifnull sum join left join between…and … where group by having order by

这个sql的意思是统计sys_user(用户表中)需要报工时的所有人,如果未填工时的也需要显示所有采用ifnull如果为空则工时数为0 还有就是附表采用的是left join 查询关联的t(虚拟表)即使虚拟表中不存在该用户也需要显示 因为查询的数据分别有用户 部门sum(t.workhours)所以分组

Group by s.login_name,s.user_name,d.dept_name

Havinvg #{weekday} > workingHours即(sum(t.workhours))

weekdays表示的是应该报的工时数 workingHours 指的是已报的工时数

所有此处的having表示的是未报全工时的用户信息

having作用过滤数据

left  join (select …)这块指的是先去working_hours(工时表)根据查询条件获取数据然后命名为t虚拟临时表 然后再去关联

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值