前端学数据库之函数
Posted 不动如山岳 难如知阴阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端学数据库之函数相关的知识,希望对你有一定的参考价值。
前面的话
mysql数据库中的函数根据功能可以划分为字符函数、数值运算符与函数、比较运算符与函数、日期时间函数、信息函数、聚合函数、加密函数以及自定义函数等。下面将详细介绍数据库中的函数
字符函数
![](https://image.cha138.com/20210610/8f90a61fd8df45549bc1a3b65e6fa06b.jpg)
![](https://image.cha138.com/20210610/01aee87f74dd4814bcaa4c9a74ade3df.jpg)
CONCAT()
CONCAT()函数用于字符连接
![](https://image.cha138.com/20210610/6571e85e65434180b739ed469c1d50b1.jpg)
CONCAT()函数也可用于将一个数据表中的两个字段的所有记录进行字符连接
![](https://image.cha138.com/20210610/404b94c2ebda47c39ef9c4d7ec79762b.jpg)
CONCAT_WS()
CONCAT_WS()函数使用指定的分隔符进行字符连接,该函数的第一个参数是指定分隔符
![](https://image.cha138.com/20210610/34c7c593019e4c458c2a6c6bac906292.jpg)
FORMAT()
FORMAT()函数主要用于数字格式化,最终返回一个字符型数字。第一个参数为待格式化的数字,第二个参数为要保留的小数位数
![](https://image.cha138.com/20210610/2935fcdaff7f4d149c2201bf70637782.jpg)
LOWER()
LOWER()函数将字符转换成大写字母
UPPER()
UPPER()函数将字符转换成小写字母
![](https://image.cha138.com/20210610/e9fe3adbde9f417eb19af410358851cb.jpg)
LEFT()
LEFT()函数用于获取左侧字符
RIGHT()
RIGHT()函数用于获取右侧字符
![](https://image.cha138.com/20210610/fcb2b49e00844dbd8b395044b0f10006.jpg)
LENGTH()
LENGTH()函数用于获取字符串长度
![](https://image.cha138.com/20210610/f26c7641611541028ced87ef71f00bcc.jpg)
LTRIM()
LTRIM()函数用于删除前导空格
RTRIM()
RTRIM()函数用于删除后续空格
TRIM()
TRIM()函数用于删除前导和后续空格
![](https://image.cha138.com/20210610/6619391d24ec43d58728619df0aec94e.jpg)
REPLACE()
REPLACE()函数用于字符串替换
![](https://image.cha138.com/20210610/f320fef218694e49be074e41887d58fb.jpg)
SUBSTRING()
SUBSTRING()函数用于字符串截取,第一个参数是开始截取的起始位置,第二个参数是截取的字符数目
[注意]这里是从1开始计数的,而不是从0开始的
![](https://image.cha138.com/20210610/6a90f5e1fcc5410fbe8a50b3d9a7a743.jpg)
如果省略第二个参数,则一直截取到字符串的结尾
![](https://image.cha138.com/20210610/8e6000318f304981bfcc30a1df9b5e6c.jpg)
[NOT] LIKE
[NOT] LIKE用于模式匹配,其中%代表0个或多个字符,_代表任意1个字符。返回1表示匹配,0表示不匹配
![](https://image.cha138.com/20210610/79324bf331594715a2e64d8948ae4801.jpg)
数值运算符
![](https://image.cha138.com/20210610/5020e39b9579441089c2ffe9fe3af526.jpg)
CEIL()
CEIL()函数主要用于进一取整(向上取整)
![](https://image.cha138.com/20210610/62414746b1db431e8e23d83855646412.jpg)
FLOOR()
FLOOR()函数主要用于舍一取整(向下取整)
![](https://image.cha138.com/20210610/372f8d67df434f83a2f5d94a0c3423ff.jpg)
ROUND()
ROUND()函数主要用于四舍五入,两个参数分别为浮点数和保留的小数位数
![](https://image.cha138.com/20210610/def8e7b1e7e9468aa02675f96a98482e.jpg)
DIV
DIV主要用于整数除法
![](https://image.cha138.com/20210610/6ac02fff4e6a40dc823861bf004f8951.jpg)
MOD
MOD主要用于取余数(取模),等同于% ,可以是整数也可以是小数
![](https://image.cha138.com/20210610/d2abb0cbbeea4760a574cb62509bea26.jpg)
POWER()
POWER()函数主要用于幂运算
![](https://image.cha138.com/20210610/1eff62fe8da54b6796c8d45a1232a208.jpg)
TRUNCATE()
TRUNCATE()函数主要用于数字截取,两个参数分别为数值和截断到小数点后n位
![](https://image.cha138.com/20210610/1da49c511e1c45b4adbbad7839bf6501.jpg)
比较运算符
![](https://image.cha138.com/20210610/091aee3dfccc4d4dad0ef347ba95d8a5.jpg)
[NOT] BETWEEN...AND...
[NOT] BETWEEN...AND...表示[不]在范围之内
![](https://image.cha138.com/20210610/8fe2aee964814c50acc83f4d90d79a88.jpg)
[NOT] IN()
[NOT] IN()表示[不]在列出值范围内
![](https://image.cha138.com/20210610/9a20393c49fd4a249757a62c114f6271.jpg)
IS [NOT] NULL
IS [NOT] NULL表示[不]为空
![](https://image.cha138.com/20210610/1b88462ec29744fb9f4a6b7654f5474c.jpg)
日期时间
![](https://image.cha138.com/20210610/34aa0e199f4748c2a5a6de49ac6e8d39.jpg)
NOW()
NOW()函数返回当前日期和时间
![](https://image.cha138.com/20210610/a68a027eca1a4945b442b6b416e74084.jpg)
CURDATE()
CURDATE()函数返回当前日期
![](https://image.cha138.com/20210610/3b3ac57b449d4bfdab61a7799af87403.jpg)
CURTIME()
CURTIME()函数返回当前时间
![](https://image.cha138.com/20210610/8ffdc79c5c974cec951a0e0a2b66a267.jpg)
DATE_ADD()
DATE_ADD()函数日期变化,可以增加,也可以减少
![](https://image.cha138.com/20210610/e055af38e64546088cb64560a235366f.jpg)
DATEDIFF()
DATEDIFF()函数日期差值,两个日期的差值
![](https://image.cha138.com/20210610/283bb08b84254e198abc72c407eb2970.jpg)
DATE_FORMAT()
DATE_FORMAT()函数进行日期格式化
![](https://image.cha138.com/20210610/d92ed838c0824e8aaa90b40cc1e1b430.jpg)
信息函数
CONNECTION_ID()
CONNECTION_ID()返回连接ID(线程ID)
![](https://image.cha138.com/20210610/0ae7e842524245d99e1ea50a2d887d92.jpg)
DATEBASE()
DATEBASE()返回当前数据库名称
![](https://image.cha138.com/20210610/1db7b13d8b20421f9755f3fc922346a7.jpg)
LAST_INSERT_ID()
LAST_INSERT_ID()返回最后插入记录的ID,当一次性写入多条记录时,函数返回的ID为第一条记录的ID
![](https://image.cha138.com/20210610/0b154dafcaae4962b098113a9386a212.jpg)
![](https://image.cha138.com/20210610/afed52a9055e4b36aefc8234b981314f.jpg)
USER()
USER()返回当前用户
VERSION()
VERSION()返回版本信息
![](https://image.cha138.com/20210610/1f94b38d897846179285700ac26a3a5d.jpg)
聚合函数
聚合函数只能用于数据表,不能用于单个数值的计算
![](https://image.cha138.com/20210610/843a19aa6ca742d2a98b44d78e8cedcd.jpg)
下面建立一个test数据表用来测试数据
![](https://image.cha138.com/20210610/5b1b6becb4194de0854d2e78d1935edf.jpg)
AVG():平均值
COUNT():计数
MAX():最大值
MIN():最小值
SUM():求和
![](https://image.cha138.com/20210610/a947d6f5e22d4d2e953d1c0b13ebe41f.jpg)
加密函数
MD5()
MD5():信息摘要算法,为以后的Web页面做准备,尽量使用MD5()
PASSWORD()
PASSWORD():密码算法,通过PASSWORD()修改当前用户和其他用户的密码,修改客户端自己的密码
![](https://image.cha138.com/20210610/5259a1f575584daebce79dc05025043f.jpg)
自定义函数
函数可以返回任意类型的值,同样可以接收这些类型的参数。函数参数和返回值之前没有必然的联系
[注意]一个函数最多可以有1024个参数
用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同
自定义函数的两个必要条件:1、参数;2、返回值
创建自定义函数
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body
关于自定义函数的函数体
1.函数体可以由合法的SQL语句构成;
2.函数体可以是简单的SELECT或INSERT语句;
3.函数体如果为复合结构则使用BEGIN...END语句;
4.复合结构可以包含声明、循环、控制结构。
创建不带参数的自定义函数
CREATE FUNCTION f1() RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),\'%Y年%m月%d日 %H点:%i分:%s秒\');
![](https://image.cha138.com/20210610/39b190a888484621b1f37b1b8cf293a8.jpg)
创建带参数的自定义函数
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED) RETURNS FLOAT(10,2) UNSIGNED RETURN (num1+num2)/2;
![](https://image.cha138.com/20210610/c50b71b47ab3403c823076f4e69bf7da.jpg)
[注意]如果自定义函数存在符合结构的多个语句,函数体要包含在BEGIN...END内,同时,需要通过DELIMITER将默认的结束符 ; 修改成其他符号,如:// $$ ,以免函数由于语句结尾的 ; 号导致中断
删除函数
DROP FUNCTION [IF EXISTS] function_name
以上是关于前端学数据库之函数的主要内容,如果未能解决你的问题,请参考以下文章