1.字符函数

2.数字函数

3.日期

4.条件判断CASE

 

1.字符函数

mysql8 创建大写表 mysql大写函数_搜索

 

 

 1.1 LOWER 大写转小写

 

SELECT activity_code,LOWER(activity_code) lowerst FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_mysql8 创建大写表_02

 


1.2 UPPER 小写转大写

 

 

SELECT activity_code,UPPER(activity_code) upperst FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_bc_03

 

 

1.3 CONCAT 拼接字符串

 

SELECT activity_code,activity_id,CONCAT(activity_code,'-',activity_id ) concatst FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_bc_04

 

 

1.4 SUBSTR

SUBSTR (str, pos)

SUBSTR (str, pos, len)

str为列名/字符串;

pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;

len为截取字符个数/长度

 

1)从第11个字符开始截取到末尾

SELECT activity_code ,SUBSTR(activity_code,  11 ) sunstrst FROM jsnh_activity

mysql8 创建大写表 mysql大写函数_bc_05

 

 

2)从倒数第6个字符开始截取到末尾

SELECT activity_code ,SUBSTR(activity_code,  -6 ) sunstrst FROM jsnh_activity

mysql8 创建大写表 mysql大写函数_搜索_06

 

 

3)从第11个字符开始截取,截取10个字符

SELECT activity_code ,SUBSTR(activity_code,  11,10 ) sunstrst FROM jsnh_activity

 

4)从倒数第6个字符开始截取,截取3个字符

SELECT activity_code ,SUBSTR(activity_code,  -6,3 ) sunstrst FROM jsnh_activity

 

1.5 LENGTH 获取字符串长度

 

SELECT activity_code ,LENGTH(activity_code) le FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_搜索_07

 

 

1.6 INSTR 查找

在字符串中查找某字符串,返回子字符串在字符串中首次出现的位置;如果没有找到,则返回0

 

SELECT activity_code ,INSTR(activity_code,'XX') le FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_搜索_08

 

 

1.7LPAD和RPAD 填充

LPAD(sourceStr, length, newStr),将字符串newStr填补到sourceStr左边,直到sourceStr长度达到length

RPAD(sourceStr, length, newStr),将字符串newStr填补到sourceStr右边,直到sourceStr长度达到length

SELECT activity_id ,LPAD(activity_id,10,'LEFT') le, RPAD(activity_id,10,'RIGHT') ri FROM jsnh_activity

mysql8 创建大写表 mysql大写函数_bc_09

 

 

1.8 TRIM和LTRIM和RTRIM 去除空格

TRIM()         #删除字符串前后空格
RTRIM()        #删除字符串结尾空格
LTRIM()        #删除字符串起始空格

字符串' abc def '前后中间都有空格,使用三个函数去除空格
SELECT TRIM('  abc def  ') tr,LTRIM('  abc def  ') ltr,RTRIM('  abc def  ') rlt

 

mysql8 创建大写表 mysql大写函数_bc_10

 

 

TRIM()左右两侧的空格都去掉了,中间的空格还在LRIM()左侧的空格都去掉了,中间和右侧的空格还在RRIM()由侧的空格都去掉了,中间和左侧的空格还在

 

1.9 REPLACE 替换

使用字符Y替换字符XX

 

SELECT activity_code,REPLACE(activity_code,'XX','Y') FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_bc_11

 

 

 

2.数字函数

2.1 ROUND 四舍五入

SELECT ROUND(3.65)

mysql8 创建大写表 mysql大写函数_搜索_12

 

 

2.2 TRUNCATE 保留几位小数

 

SELECT TRUNCATE(123.456,2)

 

mysql8 创建大写表 mysql大写函数_mysql8 创建大写表_13

 

 

2.3 MOD 取余

 

SELECT MOD(100,3)

 

mysql8 创建大写表 mysql大写函数_字符串_14

 


3.日期函数

3.1 now 当前日期

 

 

SELECT NOW()

 

mysql8 创建大写表 mysql大写函数_mysql8 创建大写表_15

 

 

3.2 str_to_date 字符串转换为日期

 

SELECT STR_TO_DATE('2001.12.01','%Y.%m.%d') da

 

mysql8 创建大写表 mysql大写函数_mysql8 创建大写表_16

 

 

3.3 date_format 日期转换为指定格式字符串

 

 

SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') dast

 

mysql8 创建大写表 mysql大写函数_mysql8 创建大写表_17

 

 

3.4格式化表达式

 

%a    缩写星期名
%b    缩写月名
%c    月,数值
%D    带有英文前缀的月中的天
%d    月的天,数值(00-31)
%e    月的天,数值(0-31)
%f    微秒
%H    小时 (00-23)
%h    小时 (01-12)
%I    小时 (01-12)
%i    分钟,数值(00-59)
%j    年的天 (001-366)
%k    小时 (0-23)
%l    小时 (1-12)
%M    月名
%m    月,数值(00-12)
%p    AM 或 PM
%r    时间,12-小时(hh:mm:ss AM 或 PM)
%S    秒(00-59)
%s    秒(00-59)
%T    时间, 24-小时 (hh:mm:ss)
%U    周 (00-53) 星期日是一周的第一天
%u    周 (00-53) 星期一是一周的第一天
%V    周 (01-53) 星期日是一周的第一天,与 %X 使用
%v    周 (01-53) 星期一是一周的第一天,与 %x 使用
%W    星期名
%w    周的天 (0=星期日, 6=星期六)
%X    年,其中的星期日是周的第一天,4 位,与 %V 使用
%x    年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y    年,4 位
%y    年,2 位

 

 

 

 

4.条件判断

4.1.CASE

 

1)简单函数
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END

SELECT activity_id,
    CASE(activity_id) 
     WHEN 2 THEN activity_id * -1
     WHEN 6 THEN activity_id * -2
     ELSE  activity_id
     END ca
FROM jsnh_activity

mysql8 创建大写表 mysql大写函数_搜索_18

 

 

2)搜索函数
CASE WHEN [expr] THEN [result1]…ELSE [default] END,搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case被忽略

 

 

SELECT activity_id,
    CASE(activity_id) 
     WHEN activity_id < 6   THEN activity_id * -1
     ELSE  activity_id
     END ca
FROM jsnh_activity

 

mysql8 创建大写表 mysql大写函数_搜索_19

 

符合<6的应该有多条数据,但是只有第一条数据乘以-1了,其它的都忽略了

 

4.2 if()函数

IF(表达式1,值1,值2)
如果表达式1成立,返回表达式2的值,否则返回表达式3的值

SELECT activity_id,IF(MOD(activity_id,2)=0,'偶数','奇数') id FROM jsnh_activity

mysql8 创建大写表 mysql大写函数_bc_20