【第6章】MySQL函数

函数表示对输入参数值返回一个具有特定关系的值

1.数学函数

1.1.绝对值函数 SELECT ABS(-3.3)

1.2.圆周率函数 SELECT pi()

1.3.平方根函数 SELECT SQRT(49)

1.4.求余函数 SELECT MOD(30,11)

1.5.获取大于X的整数 SELECT CEIL(-3.9) // -3

1.6.获取小于X的整数 SELECT FLOOR(4.5) // 4

1.7.获取随机数 SELECT RAND(x) // 若有x,则产生相同的随机数

1.8.获取接近x的整数 SELECT ROUND(-10.4,1) // 保留1位小数

1.9.返回舍去至小数点后y位的数字x SELECT TRUNCATE(10.1111,1) // 10.1

1.10.返回参数的符号 SELECT SIGN(-2) // 正数为1,负数为-1,0为0

1.11.返回x的y次方的值 SELECT POW(4,2) // 16

1.12.返回e的x次方的值 SELECT EXP(x) // e代表2.718281828459045

1.13.返回以e为底,x的对数值 SELECT LOG(2.718281828459045) // 1,若x为负数,则为NULL

1.14.返回以10为底,x的对数值 SELECT LOG10(10) //  1,若x为负数,则为NULL

2.字符串函数

2.1.计算字符串的字符数 SELECT CHAR_LENGTH('abc') // 3

2.2.计算字符串的长度 SELECT LENGTH('bcd') // 3 一个字符占用一个字节

2.3.合并字符串1 SELECT CONCAT('MySQL','5.6','版本') // MySQL5.6版本

2.4.合并字符串2 SELECT CONCAT_WS('_','MySQL','5.6','版本') // MySQL_5.6_版本 "_"为分隔符

2.5.替换字符串 SELECT INSERT('ILIKE','2','4','LOVE') // ILOVE

2.6.字母小写 SELECT LOWER('ABC') SELECT LCASE('ABC') // abc

2.7.字母大写 SELECT UPPER('Abc') SELECT UCASE('Abc') // ABC

2.8.获取左边起的N个字符 SELECT LEFT('abc',2) // ab

2.9.获取右边起的N个字符 SELECT RIGHT('abc',2) // bc

2.10.将字符串2拼接到字符串1的左边 SELECT LPAD('LOVE_DOG',10,'I') // IILOVE_DOG

2.11.将字符串2拼接到字符串1的右边 SELECT RPAD('LOVE_DOG',10,'I') // LOVE_DOGII

2.12.删除字符串左边空格 SELECT LTRIM(' ABC ') // ABC+空格

2.13.删除字符串右边空格 SELECT RTRIM(' ABC ') // 空格+ABC

2.14.删除字符串两边空格 SELECT TRIM(' ABC ') // ABC 

2.15.删除指定字符串 SELECT TRIM('a' FROM 'abcaaa') // bc 'A'和'a'区分大小写

2.16.重复生成字符串 SELECT REPEAT('AB',3) // ABABAB

2.17.生成由空格组成的字符串 SELECT LENGTH(SPACE(5)) // 5

2.18.s2替换s1在s中的位置 SELECT REPLACE('ABABABAB','B','C') // ACACACAC

2.19.比较字符串大小 SELECT STRCMP('AB','ABC') // -1,相同为0,前者大于后者为1,不区分大小写

2.20.截取字符串 SELECT SUBSTRING('ABCDEFG', 5, 2) SELECT MID('ABCDEFG', 5, 2) // EF

2.21.匹配子串开始位置的函数 SELECT LOCATE('A','BBBBBVVVVAA') SELECT POSITION('A' IN 'BBBBBVVVVAA') SELECT INSTR('BBBBBVVVVAA','A') // 10

2.22.字符串逆序 SELECT REVERSE('ABC') // CBA

2.23.返回指定位置的字符串 SELECT ELT(2,'ABC','ABCEFD','ABCEFDHIG') // ABCEFD

2.24.返回指定字符串的位置 SELECT FIELD('Hi','AB','CD','Hi') // 3

2.25.返回子串在字符串列表中的位置 SELECT FIND_IN_SET('AB','CSDABFAF,AB,DAS') // 2

3.日期和时间函数

3.1.许多日期函数可以接收数字和字符串两种参数

3.2.获取当前日期 SELECT CURDATE() // 2017-01-13

3.3.获取当前数值日期 CURRENT_DATE() + 0 // 20170113

3.4.获取当前时间 SELECT CURTIME() // 16:44:59

3.4.获取当前数值时间 SELECT CURTIME() // 164544.000000

3.5.获取当前日期和时间 SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE() // 2017-01-13 16:47:12

3.6.获取UTC日期(世界标准时间=格林威治时间) SELECT UTC_DATE() // 2017-01-13

3.7.获取UTC时间 SELECT UTC_TIME() // 08:54:05

3.8.获取数字月份 SELECT MONTH('2017-01-13') // 1

3.9.获取英文月份 SELECT MONTHNAME('2017-01-13') // January

3.10.获取星期 SELECT DAYNAME('2017-01-13') // Friday

3.11.获取星期对应的周索引 SELECT DAYOFWEEK('2017-01-13') // 6,2表示周一

3.12.获取星期对应的工作日索引 SELECT WEEKDAY('2017-01-13') // 4,0代表周一

3.13.计算日期是一年中的第几周 SELECT WEEK('2017-01-13'),WEEKOFYEAR('2017-01-13') // 2,默认一周的第一天是周日

3.14.计算日期是一年中的第几天 SELECT DAYOFYEAR('2017-01-13') // 13

3.15.计算日期是一个月中的第几天 SELECT DAYOFMONTH('2017-01-13') // 13

3.16.获取年份、季度、小时、分钟、秒钟 SELECT YEAR('2017-01-13 16:44:59'),QUARTER('2017-01-13 16:44:59'),HOUR('2017-01-13 16:44:59'),MINUTE('2017-01-13 16:44:59'),SECOND('2017-01-13 16:44:59') // 2017 1 16 44 59

3.17.时间转换成秒钟 SELECT TIME_TO_SEC('20:00:00') // 72000

3.18.秒钟转换成时间 SELECT SEC_TO_TIME(72000) // 20:00:00

4.条件判断函数

4.1.IF函数 SELECT IF(1>2,'A','B') // B

4.2.IFNULL函数 SELECT IFNULL(NULL,'B') // B,若1不为NULL,则返回1,否则返回2

4.3.CASE函数 SELECT CASE 'F' WHEN 'A' THEN 1 WHEN 'B' THEN 2 WHEN 'C' THEN 3 ELSE 'D' END // D

5.系统信息函数

5.1.获取MySQL版本号 SELECT VERSION() // 5.5.24

5.2.获取MySQL连接数 SELECT CONNECTION_ID() // 4

5.3.获取MySQL数据库名 SELECT DATABASE() // test_db

5.4.获取MySQL当前登录用户名称 SELECT USER(),CURRENT_USER(),SYSTEM_USER() // root@localhost

5.5.获取MySQL字符串的字符集 SELECT CHARSET('ABC') // utf8

5.6.获取MySQL字符串的排序方式 SELECT COLLATION('ABC') // utf8_general_ci

5.7.获取最后一个自动生成的ID值 SELECT LAST_INSERT_ID() // 0

6.加密函数

6.1.加密函数PASSWORD(str) SELECT PASSWORD('ABC') // *71B101096C51D03995285042443F5C44D59C8A31

6.2.加密函数MD5(str) SELECT MD5('ABC') // 902fbdd2b1df0c4f70b4a5d23525e932

6.3.加密函数ENCODE(str,password_str) SELECT ENCODE('AB','888') // 乱码 

6.4.解密函数DECODE(encode_str,password_str)

7.其他函数

7.1.格式化函数 SELECT FORMAT('123456.789',2) // 123,456.79

菜鸟交流群:260052172

转载于:https://my.oschina.net/Tsher2015/blog/823871