SQL函数(持续更新)

SQL 函数

1. group_concat()

 group_concat([DISTINCT] fieldA [Order BY  fieldB ASC/DESC] [Separator '分隔符'])
--  根据价格进行分组,将相同价格的电影名称放在一列中,以逗号进行分割,默认就是逗号,可以省略。
SELECT prices,group_concat(distinct movie order by date desc separator ',') as movies  from movies_list group by prices;
pricesmovies
10A,B,C
20d,e,f

2.获取当前时间所在的年,季度,月,周,日的函数

curdate()=20220513

  • year()
select year(curdate()) -- 2022
  • quarter()
select quarter(curdate()) -- 2
  • month()
select month(curdate()) -- 5
  • week()
select week(curdate()) -- 19
  • day()
select day(curdate()) --13

3. round函数

-- ROUND 函数用于把数值字段舍入为指定的小数位数
SELECT ROUND(column_name,decimals)
eg: select round(3.14159,3)  -- 3.142
-- 参数说明
column_name 需要四舍五入的字段
decimals 保留的小数位数

4. floor函数

-- FLOOR 函数用于把数值字段向下取整数
SELECT FLOOR(column_name)
eg:select floor(15.12)  -- 15

5. CEILING函数

-- CEILING函数用于把数值字段向上取整
SELECT CEILING(column_name) 
eg: select ceiling(16.23)  -- 17

6. MAX() , MIN()

-- 都会对 null 进行忽略

7. count()

在进行count(1)count(*),若出现null 则会进行统计
在count(字段) ,若该字段有null值,则不会进行统计

8. sum(),avg()

主要是对数值进行计算

9. week_floor()

## 取到传入日期的上周末
SELECT  WEEK_FLOOR(CURDATE()),'%Y-%m-%d') -- 今天2022-08-18 
-- 结果为:2022-08-14

10. week_ceil()

## 与week_floor 相反
SELECT  DATE_FORMAT(WEEK_CEIL(CURDATE()),'%Y-%m-%d') 
-- 今天 2022-08-18
-- 结果 2022-08-21

11. MYSQL中 AND 和OR的优先级

在没有括号的干预下,mysql中 and 的优先级高于 or ,是先执行 and 语句 后执行 or 语句

情况一:

select * from t_table where 条件A AND 条件B OR 条件C
等价于
select * from t_table where (条件A AND 条件B ) OR 条件C

情况二:

select * from t_table where 条件A AND 条件B OR 条件C and 条件D
等价于
select * from t_table where (条件A AND 条件B ) OR (条件C AND 条件D)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值