下表列出了 DQL 语句和 DML 语句对函数的支持情况,需要注意的是,在 DML 语句中使用函数,不能将其作为主键。
DML 语句支持
| 类型 | 是否支持 |
| CONCAT(string2[,…]) | 是 |
| INSTR(string,substring) | 是 |
| LCASE(string2) | 是 |
| LEFT(string2,length) | 是 |
| LENGTH(string) | 是 |
| LOAD_FILE(file_name) | 是 |
| LOCATE(substring,string[,start_position]) | 是 |
| LPAD(string2,length,pad) | 是 |
| LTRIM(string2) | 是 |
| REPEAT(string2,count) | 是 |
| REPLACE(str,search_str,replace_str) | 是 |
| RPAD(string2,length,pad) | 是 |
| RTRIM(string2) | 是 |
| STRCMP(string1,string2) | 是 |
| SUBSTRING(str,position[,length]) | 是 |
| TRIM([[BOTH|LEADING|TRAILING][padding]FROM]string2) | 是 |
| UCASE(string2) | 是 |
| RIGHT(string2,length) | 是 |
| SPACE(count) | 是 |
| ABS(number2) | 是 |
| BIN(decimal_number) | 是 |
| CEILING(number2) | 是 |
| CONV(number2,from_base,to_base) | 是 |
| FLOOR(number2) | 是 |
| FORMAT(number,decimal_places) | 是 |
| HEX(DecimalNumber) | 是 |
| LEAST(number,number2[,..]) | 是 |
| MOD(numerator,denominator) | 是 |
| POWER(number,power) | 是 |
| RAND([seed]) | 是 |
| ROUND(number[,decimals]) | 是 |
| SIGN(number2) | 是 |
| SQRT(number2) | 是 |
| ADDTIME(date2,time_interval) | 是 |
| CONVERT_TZ(datetime2,fromTZ,toTZ) | 是 |
| CURRENT_DATE() | 是 |
| CURRENT_TIME() | 是 |
| CURRENT_TIMESTAMP() | 是 |
| DATE(datetime) | 是 |
| DATE_ADD(date2,INTERVALd_valued_type) | 是 |
| DATE_FORMAT(datetime,FormatCodes) | 是 |
| DATE_SUB(date2,INTERVALd_valued_type) | 是 |
| DATEDIFF(date1,date2) | 是 |
| DAY(date) | 是 |
| DAYNAME(date) | 是 |
| DAYOFWEEK(date) | 是 |
| DAYOFYEAR(date) | 是 |
| EXTRACT(interval_nameFROMdate) | 是 |
| MAKEDATE(year,day) | 是 |
| MAKETIME(hour,minute,second) | 是 |
| MONTHNAME(date) | 是 |
| NOW() | 是 |
| SEC_TO_TIME(seconds) | 是 |
| STR_TO_DATE(string,format) | 是 |
| TIMEDIFF(datetime1,datetime2) | 是 |
| TIME_TO_SEC(time) | 是 |
| WEEK(date_time[,start_of_week]) | 是 |
| YEAR(datetime) | 是 |
| DAYOFMONTH(datetime) | 是 |
| HOUR(datetime) | 是 |
| LAST_DAY(date) | 是 |
| MICROSECOND(datetime) | 是 |
| MONTH(datetime) | 是 |
| MINUTE(datetime) | 是 |
| FIRST() | 否 |
| LAST() | 否 |
| MIN() | 否 |
| MAX() | 否 |
| AVG() | 否 |
| SUM() | 否 |
| COUNT() | 否 |
| 类型 | 读未提交 | 读已提交 |
| CONCAT(string2[,…]) | 是 | 是 |
| INSTR(string,substring) | 是 | 是 |
| LCASE(string2) | 是 | 是 |
| LEFT(string2,length) | 是 | 是 |
| LENGTH(string) | 是 | 是 |
| LOAD_FILE(file_name) | 是 | 是 |
| LOCATE(substring,string[,start_position]) | 是 | 是 |
| LPAD(string2,length,pad) | 是 | 是 |
| LTRIM(string2) | 是 | 是 |
| REPEAT(string2,count) | 是 | 是 |
| REPLACE(str,search_str,replace_str) | 是 | 是 |
| RPAD(string2,length,pad) | 是 | 是 |
| RTRIM(string2) | 是 | 是 |
| STRCMP(string1,string2) | 是 | 是 |
| SUBSTRING(str,position[,length]) | 是 | 是 |
| TRIM([[BOTH|LEADING|TRAILING][padding]FROM]string2) | 是 | 是 |
| UCASE(string2) | 是 | 是 |
| RIGHT(string2,length) | 是 | 是 |
| SPACE(count) | 是 | 是 |
| ABS(number2) | 是 | 是 |
| BIN(decimal_number) | 是 | 是 |
| CEILING(number2) | 是 | 是 |
| CONV(number2,from_base,to_base) | 是 | 是 |
| FLOOR(number2) | 是 | 是 |
| FORMAT(number,decimal_places) | 是 | 是 |
| HEX(DecimalNumber) | 是 | 是 |
| LEAST(number,number2[,..]) | 是 | 是 |
| MOD(numerator,denominator) | 是 | 是 |
| POWER(number,power) | 是 | 是 |
| RAND([seed]) | 是 | 是 |
| ROUND(number[,decimals]) | 是 | 是 |
| SIGN(number2) | 是 | 是 |
| SQRT(number2) | 是 | 是 |
| ADDTIME(date2,time_interval) | 是 | 是 |
| CONVERT_TZ(datetime2,fromTZ,toTZ) | 是 | 是 |
| CURRENT_DATE() | 是 | 是 |
| CURRENT_TIME() | 是 | 是 |
| CURRENT_TIMESTAMP() | 是 | 是 |
| DATE(datetime) | 是 | 是 |
| DATE_ADD(date2,INTERVALd_valued_type) | 是 | 是 |
| DATE_FORMAT(datetime,FormatCodes) | 是 | 是 |
| DATE_SUB(date2,INTERVALd_valued_type) | 是 | 是 |
| DATEDIFF(date1,date2) | 是 | 是 |
| DAY(date) | 是 | 是 |
| DAYNAME(date) | 是 | 是 |
| DAYOFWEEK(date) | 是 | 是 |
| DAYOFYEAR(date) | 是 | 是 |
| EXTRACT(interval_nameFROMdate) | 是 | 是 |
| MAKEDATE(year,day) | 是 | 是 |
| MAKETIME(hour,minute,second) | 是 | 是 |
| MONTHNAME(date) | 是 | 是 |
| NOW() | 是 | 是 |
| SEC_TO_TIME(seconds) | 是 | 是 |
| STR_TO_DATE(string,format) | 是 | 是 |
| TIMEDIFF(datetime1,datetime2) | 是 | 是 |
| TIME_TO_SEC(time) | 是 | 是 |
| WEEK(date_time[,start_of_week]) | 是 | 是 |
| YEAR(datetime) | 是 | 是 |
| DAYOFMONTH(datetime) | 是 | 是 |
| HOUR(datetime) | 是 | 是 |
| LAST_DAY(date) | 是 | 是 |
| MICROSECOND(datetime) | 是 | 是 |
| MONTH(datetime) | 是 | 是 |
| MINUTE(datetime) | 是 | 是 |
| FIRST() | 是 | 否 |
| LAST() | 是 | 否 |
| MIN() | 是 | 否 |
| MAX() | 是 | 否 |
| AVG() | 是 | 否 |
| SUM() | 是 | 否 |
| COUNT() | 是 | 否 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云数据库中,DML(数据操作语言)与DQL(数据查询语言)对函数的支持情况如下:
DML语句广泛支持字符串、数学和时间日期函数,包括但不限于: - 字符串函数:如CONCAT, INSTR, LCASE, LEFT, 等,用于处理文本数据。 - 数学函数:例如ABS, BIN, CEILING, CONV, 等,用于执行数学运算。 - 时间日期函数:如ADDTIME, CONVERT_TZ, CURRENT_DATE, 等,处理日期和时间值。
重要提示: 在使用DML语句时,尽管大多数函数都得到支持,但不能将函数应用于主键字段。
聚合函数如FIRST, LAST, MIN, MAX, AVG, SUM, COUNT在DML语句中不被支持。
DQL语句几乎支持所有上述提及的字符串、数学和时间日期函数,无论是在读未提交还是读已提交模式下。
特别说明: 聚合函数FIRST, LAST, MIN, MAX, AVG, SUM, COUNT在DQL的读已提交模式下同样不被支持。
综上所述,DML语句主要用于修改数据库中的数据,支持丰富的非聚合函数以满足数据操作需求;而DQL语句则专注于数据查询,兼容广泛的函数集,但限制了聚合函数的使用场景,确保数据的一致性和准确性。在设计SQL查询或更新语句时,请根据具体需求选择合适的函数,并注意不同语境下的限制条件。