Mysql常用语法备忘录【常用函数、特殊语法、特殊需求实现方式】(持续更新中......)

Mysql常用语法备忘录【常用函数、特殊语法、特殊需求实现方式】(持续更新中......)

Elysian
2022-11-22 / 0 评论 / 79 阅读 / 正在检测是否收录...

一、排序函数

  1. RANK():1,1,3 在计算排序时,若存在相同的位次,会跳过之后的位次
  2. DENSE_RANK():1,1,2 在计算排序时,若存在相同的位次,不会跳过之后的位次
  3. ROW_NUMBER():1,2,3 这个函数赋予唯一的连续位次

二、日期函数

  1. DATEDIFF(data1,date2):date1-date2
  2. DATE_FORMAT(date,format):日期格式转换
  3. TIMESTAMPDIFF(second/minute/hour/day/week/month,date1,date2):date2-date1
  4. DATE_ADD(curdate(),interval 1 day):返回当前日期增加1天后的日期
  5. DATE_SUB(curdate(),interval 1 day):返回当前日期减少1天的日期
  6. YEAR(date1)、MONTH(date1) 、DAY(date1):返回年、月、日 。例如:DAY(‘2021-08-02’):返回的是2
  7. LAST_DAY(date1):返回当月的最后一天 。例如:LAST_DAY(‘2021-08-02 11:41:01’) 返回:2021-08-31

小tips:DAY(LAST_DATE(date1))返回这个月的天数

三、字符串函数

1)转换

  1. Lcase(str):将字符串str的所有字母变成小写字母
  2. Ucase(str):将字符串str的所有字母变成大写字母

2)计算长度

  1. Length(str):计算str的长度
  2. Char_length():计算字符串的长度

3)位置

  1. Locate(substr,str):返回子串substr在字符串中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;
  2. POSITION(substr IN str):返回子串substr在字符串str中第一次出现的位置,如果字符substr在字符串中不存在,与locate函数作用一样。

4)截取

  1. Right(s,n):返回字符串s的后n个字符
  2. Left(s,n):返回字符串s的前n个字符
  3. Mid(s,n,len):返回从字符串s的n位置截取的长度为len的子字符串,同substring(s,n,len)
  4. Substring_index(str,n,m):返回字符串str从第n个字符截取到第m个字符
  5. Substring_index(str,separator,count),截取count个分隔符之前的字符串,如果count为正,则从左边开始截取,如果count为负,则从右边开始截取
  6. Replace(str,n,m):将字符串str中的第n个字符替换成m字符
  7. Replace(s,s1,s2):替换函数,用s2替换s中的s1

5)连接

  1. group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符']) 这个函数必须和group by语句一起使用,将goup by产生的一个分组中的值连接起来,返回一个字符串结果
  2. CONCAT_WS(’分隔符‘,str1,str2) 第一个参数为分隔符,相比于concat函数可以一次性指定分隔符
  3. CONCAT(str1,str2,...) :将多个字符串连接成一个字符串

6)去除空格

  1. Rtrim():去除字符串右端空格
  2. Ltrim():去除字符串左端空格
  3. Trim():去除字符串两端空格

7)匹配

  1. Like 完全匹配
  2. Rlike 不完全匹配,只要字段中的值存在要查找的部分,就会被选择出来
  3. Regexp 不完全匹配
    . 匹配任意单个字符
  • 匹配0个或者多个前一个得到的字符
    [] 匹配任意一个[]内的字符

^ 匹配开头
$ 匹配结尾
{n} 匹配前一个字符反复n次
1 [!abd] 不包含括号中的字符

四、分析函数

  1. LEAD(x)、LAG(x):分别返回传入的列x对于当前行的 下一行/前一行 的值
  2. LEAD(x,y)、LAG(x,y):分别返回传入的列x对于当前的 后y行/前y行 的值
  3. First_Value(x)、Last_value(x):分别返回列x的 第一个值/最后一个值
  4. Nth_value(x,n):返回x列的第n个值
    注意:last_value nth_value 通常需要把window frame 修改成 rows between unbounded preceding and unbounded following

五、其他函数

  1. Ceil(x):返回大于或者等于x的最小整数
  2. Floor(x):返回小于或者等于x的最大整数
  3. CAST(expression AS date_type)将一种数据类型显示转换成另一种数据类型,可转换的数据类型为:二进制binary、字符型char、日期date、时间time、日期和时间datetime、浮点数decimal、整数signed、无符号整数unsigned。在创建表格的时候,
SELECT * FROM 表名 LIMIT 3,1;          #从第4条数据开始取数,取1条数据,即只取第四条
SELECT * FROM 表名 LIMIT 1 OFFSET 3;   #从第4条数据开始取数,取1条数据,即只取第四条
SELECT * FROM 表名 LIMIT 3,2;          #从第4条数据开始取数,取2条数据,即取第4条,第5条
SELECT * FROM 表名 LIMIT 2 OFFSET 3;   #从第4条数据开始取数,取2条数据,即取第4条,第5条
  1. LIMIT1 OFFSET2:从第3条数据开始取数,返回1条记录,类似于LIMIT 2,1
  2. LIMIT1,3 :分页,从第2条记录开始,返回3条记录,类似于LIMIT 3 OFFSET 1
  3. IF(true,a,b):IF 函数,如果为真,则返回a,否则,返回b
  4. IFNULL(expression1,expression2): 如果expression1不为null,则返回expression1,否则返回expression2

  1. abc
0

评论

博主关闭了所有页面的评论