0基础学MySQL数据库—从小白到大牛(6)单行函数

2023年 8月 15日 75.1k 0

一、函数的理解

1.1什么是函数

函数在计算机语言使用中贯穿始终,函数的作用是可以把我们经常使用的代码封装起来,需要的时候调用即可,这样==提高了代码的效率==而且==提高了可维护性==。在SQL中我们也可以使用函数对检索出来的数据进行函数操作,使用这些函数,可以极大的==提高用户对数据库的管理效率==
从函数的定义角度出发,函数可以分成==内置函数==,==自定义函数==

1.2不同的DBMS函数的差异

DBMS之间的差异很大,远大于同一个语言不同版本之间的差异。实际上很少的函数被DBMS同时支持的。大部分DBMS会有自己特定的函数,这意味着采用SQL函数的代码可移植性很差,因此在使用函数的时候需要特别注意。

1.3MySQL的内置函数及分类

MySQL提供了丰富的内置函数,从实现功能的角度来看可以分为:

  • 数值函数
  • 字符串函数
  • 日期和时间函数
  • 流程控制函数
  • 加密与解密函数
  • 获取MySQL信息函数
  • 聚合函数等 可以将这些丰富的内置函数再分为两类:单行函数和聚合函数(分组函数)

二、数值函数

函数 用法
ABS(X) 返回X的绝对值
SIGN(X) 返回X的符号,正数返回1,复数返回-1,0返回0
PI() 返回圆周率的值
CEIL(X) 返回大于或等于某个值的最小整数
FLOOR(X) 返回小于或等于某个值的最大整数
LEAST(X1,X2,X3) 返回列表中的最小值
GREATEST(X1,X2,X3) 返回列表中最大值
MOD(X,Y) 返回X除以Y以后的余数
RAND() 返回0~1的随机值
RAND(X) 返回0~1的随机值,其中X的值作种子值,相同的X值会产生相同的随机数
ROUND(X) 返回一个对X的值进行四舍五入后,最接近于X的整数
ROUND(X,Y) 返回一个对X的值进行四舍五入后最接近X的值,并保留到小数点后面Y位
TRUNCATE(X,Y) 返回数字X截断为Y位小数的结果
SQRT(X) 返回X的平方根,当X的值为负数时,返回NULL
  • 简单举例
  • ABS(X)函数
  • CEIL(X)函数 FLOOR(X)函数,和CEIL用法刚好相反 MOD(X,Y)返回X/Y的模 和x%y的结果相同,如果被模数和模数任何一个为NULL结果都为NULL RAND()返回0~1的随机值 ROUND(X,Y)函数:返回参数X的四舍五入的有Y位小数的值 如果是整数,将会保留Y位数量0;如果不写y则默认y为0,即将x四舍五入后取整

TRUNCATE(X,Y)函数:返回数字X截断为Y位小数的结果
仅仅只是截断而不是四舍五入
0基础学MySQL数据库—从小白到大牛(6)单行函数-1

三、字符串函数

函数 功能
CONCAT(x1,x2,xn...) 连接x1,x2,xn为一个字符串
INSERT(str,x,y,instr) 将字符串从第X位置开始,Y个字符长的子串替换为字符串instr
LOWER(str) 将字符串str中全转为小写
UPPER(str) 将字符串str中全转为大写
LEFT(str,x) 返回字符串str最左边的x个字符
RIGHT(str,x) 返回字符串str最右边的x个字符
LPAD(str,n,pad) 用字符串对左边填充,直到长度为N个字符长度
RPAD(str,n,pad) 用字符串对右边填充,直到长度为N个字符长度
LTRIN(str) 去掉字符串str左边空格
RTRIM(str) 去掉字符串srt右边空格
REPEAT(str,x) 返回str重复x次结果
REPLACE(str,a,b) 用字符串b替换字符串str中出现所有的字符串a
STRCMP(x1,x2) 比较字符串x1和x2
TRIM(str) 去掉行尾和行头空格
SUBSTRING(str,y) 返回从字符串str x 位置起y个字符长度的字串
  • 示范 |CONCAT(x1,x2,xn...)|连接x1,x2,xn为一个字符串| ==如果加入NULL的话结果都将会是NULL== |INSERT(str,x,y,instr)|将字符串从第X位置开始,Y个字符长的子串替换为字符串instr| |LOWER(str)|将字符串str中全转为小写| |UPPER(str)|将字符串str中全转为大写| |LEFT(str,x)|返回字符串str最左边的x个字符| |RIGHT(str,x)|返回字符串str最右边的x个字符| ==如果第二个参数是NULL则返回NULL== |LPAD(str,n,pad)|用字符串对左边填充,直到长度为N个字符长度| |RPAD(str,n,pad)|用字符串对右边填充,直到长度为N个字符长度| |LTRIN(str)|去掉字符串str左边空格| |RTRIM(str)|去掉字符串右边空格| |REPEAT(str,x)|返回str重复x次结果| |REPLACE(str,a,b)|用字符串b替换字符串str中出现所有的字符串a| 用2000替换掉字符串中的2001 |STRCMP(x1,x2)|比较字符串x1和x2| 如果S1比S2小返回-1.如果相等返回0,如果S1大于S2返回1 |TRIM(str)|去掉行尾和行头空格| |SUBSTRING(str,x,y)|返回从字符串str x 位置起y个字符长度的字串|

四、日期和时间函数

函数 功能
CURDATE() 返回当前日期
CURTIME() 返回当前时间
NOW() 返回当前的日期和时间
UNIX_TIMESTAMP(date) 返回日期date的UNIX时间戳
FROM_UNIXTIME 返回UNIX时间戳的日期值
WEEK(date) 返回日期date为一年中的第几周
YEAR(date) 返回日期date的年份
HOUR(time) 返回time的小时值
MINUTE(time) 返回time的分钟值
MONTHNAME(date,fmt) 返回date的月份名
DATE_FORMAT(date,fmt) 返回按字符串fmt格式化日期date值
DATE_ADD(date,INTERVAL expr type) 返回一个日期或时间值加上一个时间间隔的时间值
DATEDIFF(expr,expr2) 返回起始时间expr和结束时间expr2之间的天数
  • 举例 |CURDATE()|返回当前日期| |CURTIME()|返回当前时间| |NOW()|返回当前的日期和时间|

|UNIX_TIMESTAMP(date)|返回日期date的UNIX时间戳|

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论