算术函数
-- 取绝对值 SELECT ABS(-2); -- 取余 SELECT MOD(101,3); -- 四舍五入为指定的小数位数,需要两个参数,分别为字段名称、小数位数 SELECT ROUND(37.25,1);
字符串函数
-- 拼接字符串 SELECT CONCAT('abc',123); -- 计算字段的长度(一个汉字算三个字符,一个数字或字母算一个字符) SELECT LENGTH('你好'); -- 计算字段长度,汉字、数字、字母都算一个字符 SELECT CHAR_LENGTH('你好'); -- 字符串转小写 SELECT LOWER('MYSQL'); -- 字符串转大写 SELECT UPPER('mysql'); -- 替换函数. 分别为:要替换的表达式或字段名、想要查找被替换的字符串、替换成哪个字符串 SELECT REPLACE('myabc','abc','sql'); -- 截取字符串,分别为:待截取的表达式或字段名、开始截取的位置、想要截取的字符串长度 SELECT SUBSTRING('mysqloracle',1,5);
日期函数
-- 系统当前日期 SELECT CURRENT_DATE(); -- 系统当前时间,没有具体的日期 SELECT CURRENT_TIME(); -- 系统当前时间,包括具体的日期+时间 SELECT CURRENT_TIMESTAMP(); -- 抽取具体的年、月、日
- EXTRACT() | 抽取具体的年、月、日
- DATE() | 返回时间的日期部分
- YEAR() | 返回时间的年份部分
- MONTH() | 返回时间的月份部分
- DAY() | 返回时间的天数部分
- HOUR() | 返回时间的小时部分
- MINUTE() | 返回时间的分钟部分
- SECOND() | 返回时间的秒部分
SELECT EXTRACT(YEAR FROM CURRENT_DATE()); -- 返回时间的日期部分 SELECT DATE(CURRENT_TIMESTAMP()); -- 注意: DATE日期格式必须是yyyy-mm-dd的形式.
转换函数
数据类型转换,参数是一个表达式,分别是原始数据和目标数据类型.
-- 会报错. -- CAST函数在转换数据类型的时候,不会四舍五入. -- 如果原数值有小数,那么转换为整数类型的时候就会报错. SELECT CAST(123.123 AS INT); SELECT CAST(123.123 AS DECIMAL(8,2)); -- 返回第一个非空值 SELECT COALESCE(null,'aass','bbbb');
为什么使用SQL函数会带来问题
DBMS的差异性很大,不同的DBMS对SQL函数的支持与语法可能不一样.
关于大小写的规范
命名规范的建议:
- 关键字和函数名称全部大写;
- 数据库名、表名、字段名称全部小写;
- SQL语句必须以分号结尾.