1 字符串函数
函数 | 描述 | 实例 |
---|---|---|
CHAR_LENGTH(s) | 返回字符串 s 的字符数 | SELECT CHAR_LENGTH('itheima') AS '长度'; |
CONCAT(s1,s2...sn) | 字符串 s1,s2 等多个字符串合并为一个字符串 | SELECT CONCAT('I','love','you'); |
LOWER(s) | 将字符串 s 的所有字母变成小写字母 | SELECT LOWER('ITHEIMA'); |
UPPER(s) | 将字符串转换为大写 | SELECT UPPER("itheima"); |
SUBSTR(s, start,length) | 从字符串 s 的 start 位置(从1开始)截取长度为 length 的子字符串 | SELECT SUBSTR("itheima",1,2); |
TRIM(s) | 去掉字符串 s 开始和结尾处的空格 | SELECT TRIM(' itheima ') |
REPLACE(str , str1 , str2) | 将str中的str1转换为str2(全部转换) | update student set `name` = replace(`name` , '韩' , '王') |
示例:
SELECT CHAR_LENGTH('itheima') AS '长度'; --执行结果为: 7 SELECT CONCAT('I','love','you'); --执行结果为: Iloveyou SELECT LOWER('ITHEIMA'); --执行结果为: itheima SELECT UPPER("itheima"); --执行结果为: ITHEIMA SELECT SUBSTR("itheima",1,2); --执行结果为: it SELECT TRIM(' it heima '); --执行结果为: it heima
2 数字函数
函数 | 描述 | 实例 |
---|---|---|
RAND() | 返回 0 到 1 的随机数 | SELECT RAND(); |
ROUND(小数 , 小数点后保留小数位数) | 四舍五入保留几位小数 | SELECT ROUND(3.1415926,2) ; |
TRUNCATE(小数 , 小数点后保留小数位数) | 不会四舍五入保留几位小数 | SELECT TRUNCATE(3.1415926,3); |
LEAST(expr1, expr2, expr3, ...) | 返回列表中的最小值 | SELECT LEAST(13, 14, 521, 74, 1) |
GREATEST(expr1, expr2,expr3, ...) | 返回列表中的最大值 | SELECT GREATEST(13, 14, 521, 74, 1) |
示例:
SELECT RAND(); -- 返回0-1之间的随机数 0.21809973867433122 SELECT ROUND(3.1415926,3) ; -- 执行结果: 3.142 select TRUNCATE(3.1415926,3);-- 执行结果:3.141 SELECT LEAST(13, 14, 521, 74, 1); -- 执行结果: 1 SELECT GREATEST(13, 14, 521, 74, 1); -- 执行结果: 521
3 日期函数
函数名 | 描述 | 实例 |
---|---|---|
NOW() 和 SYSDATE() | 返回系统的当前日期和时间 | SELECT NOW(); 或 SELECT SYSDATE(); |
CURDATE() | 返回当前日期 | SELECT CURDATE(); |
CURTIME() | 返回当前系统时间 | SELECT CURTIME(); |
YEAR(d) | 返回d的中的年份 | SELECT YEAR(NOW()); |
MONTH(d) | 返回d的中的月份 | SELECT MONTH(NOW()); |
DAY(d) | 返回d中的日 | SELECT DAY(NOW()); |
示例:
SELECT NOW(); 或 SELECT SYSDATE(); -- 返回系统的当前时间: 年-月-日 时:分:秒 SELECT CURDATE(); -- 返回系统当前日期: 年-月-日 SELECT CURTIME(); -- 返回系统当前时间: 时:分:秒 SELECT YEAR(NOW()); -- 返回当前日期中的年份 SELECT MONTH(NOW()); -- 返回当前日期中的月份 SELECT DAY(NOW()); -- 返回当前日期中的日
当时给我一个将字符串前几位替换的任务,结果忘了这些函数,很尴尬,现在将那个函数重写一个
将所有名字的姓氏改为韩:
两种方法:各有利弊,replace会把所有字符串全部替换掉
update student set `name` = CONCAT('王',substring(`name` , 2 , CHAR_LENGTH(`name`)))
update student set `name` = replace(`name` , '王' , '韩',1)