MySQL常用函数或者关键字

说明

我们需要掌握一些常用的MySQL函数和一些写SQL需要注意的情况,这样我们才能更好得写出一些SQL,更好地解决我们的问题。

关于聚合函数的筛选结果筛选条件

关于聚合函数的筛选结果作为筛选条件时,不能用where来做条件判断,而是要使用having语法。
 
 

时间日期函数

如果我们的数据库表中有字段(date)的值为2023-03-23这样的,那么我们可以使用函数

year(date)=2023
month(date)=03
day(date)=23

 
 

string的截取

如果我们需要在字段中截取字段中某些值,那么我们可以使用函数

substring_index(filed,'那个字符开始截取',从第几个字符开始截取)
如果最后一个参数为负数,那么从倒数的开始


如http:/ur/bisdgboy777要截取出url后面的内容
substring_index (blog_url, '/', -1)


注意这个函数也是可以嵌套查询的

 
 

根据字段的条件来分组

CASE 测试表达式
WHEN 简单表达式1 THEN 结果表达式1
WHEN 简单表达式2 THEN 结果表达式2 …
WHEN 简单表达式n THEN 结果表达式n
[ ELSE 结果表达式n +1 ]
END


如
select
    device_id,
    gender,
    case
        when age < 20 then '20岁以下'
        when age between 20 and 24  then '20-24岁'
        when age >= 25 then '25岁及以上'
        else '其他'
    end as age_cut
from
    user_profile
 

 
 

如果有输出顺序,那么我们需要看看能不能用到union,union all关键字

union 和 union al的区别在于是否结果去重
union :结果去重
union all :结果不去重

如例子:

(使用union或者union all 一般都有个或,但是我们需要注意输出顺序)
运营想要分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据,请取出相应结果,结果不去重。(注意输出的顺序,先输出学校为山东大学再输出性别为男生的信息):


select
    device_id,
    gender,
    age,
    gpa
from
    user_profile
where
    university = '山东大学'
union all
select
    device_id,
    gender,
    age,
    gpa
from
    user_profile
where
    gender = 'male';


 
 

保留小数为

结果保留到小数点后面1位(1位之后的四舍五入)

select round(max(gpa),1) from table ;

 
  
  
  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值