一.内置函数
1.数学函数
rand() | round(num) | ceil(num) | floor(num) |
---|---|---|---|
随机 | 四舍五入 | 向上取整 | 向下取整 |
2.字符串函数
length() 字节长度
char_length() 字符长度
ucase() 大写
lcase() 小写
concat(字符,…,字符n) 连接字符串
replace(字符串,旧字符,新字符)字符串替换
截取字符串
left(字符串,截取长度)
right(字符串,截取长度)
substring(字符串,开始位置,截取长度) #包含开始位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
mysql> select left ( '123456' ,4); + ------------------+ | left ( '123456' ,4) | + ------------------+ | 1234 | + ------------------+ 1 row in set (0.00 sec) mysql> select right ( '123456' ,4); + -------------------+ | right ( '123456' ,4) | + -------------------+ | 3456 | + -------------------+ 1 row in set (0.00 sec) mysql> select substring ( '123456' ,2,4); + -------------------------+ | substring ( '123456' ,2,4) | + -------------------------+ | 2345 | + -------------------------+ 1 row in set (0.00 sec) |
3.日期函数
now() | unix_timestamp() | from_unixtime() |
---|---|---|
当前时间 | 时间戳 | 格式化时间戳 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
mysql> select now(); + ---------------------+ | now() | + ---------------------+ | 2019-03-16 14:55:42 | + ---------------------+ 1 row in set (0.00 sec) mysql> select unix_timestamp(); + ------------------+ | unix_timestamp() | + ------------------+ | 1552719356 | + ------------------+ 1 row in set (0.00 sec) mysql> select from_unixtime(1552719356); + ---------------------------+ | from_unixtime(1552719356) | + ---------------------------+ | 2019-03-16 14:55:56 | + ---------------------------+ 1 row in set (0.00 sec) |
year() | month() | day() | hour() | minute() | second() |
---|---|---|---|---|---|
年 | 月 | 日 | 时 | 分 | 秒 |
1
2
3
4
5
6
7
8
9
10
11
12
|
mysql> select -> year (now()) as '年' , -> month (now()) as '月' , -> day (now()) as '日' , -> hour (now()) as '时' , -> minute (now()) as '分' , -> second (now()) as '秒' ; + ------+------+------+------+------+------+ | 年 | 月 | 日 | 时 | 分 | 秒 | + ------+------+------+------+------+------+ | 2019 | 3 | 16 | 14 | 59 | 12 | + ------+------+------+------+------+------+ |
4.加密函数
md5(数据)
password(数据)
5.条件判断函数
1).语法: if(数据,值1,值2) #判断指定数据是否为真:真-值1,假-值2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mysql> select if( null ,1,2); + --------------+ | if( null ,1,2) | + --------------+ | 2 | + --------------+ 1 row in set (0.00 sec) mysql> select if(1,0,2); + -----------+ | if(1,0,2) | + -----------+ | 0 | + -----------+ 1 row in set (0.00 sec) |
2).语法: IFNULL(数据,值2) #判断指定数据是否为null:null-值2,非null-本身
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mysql> select ifnull(0,123); + ---------------+ | ifnull(0,123) | + ---------------+ | 0 | + ---------------+ 1 row in set (0.00 sec) mysql> select ifnull( 'a' ,123); + -----------------+ | ifnull( 'a' ,123) | + -----------------+ | a | + -----------------+ 1 row in set (0.00 sec) |
二.自定义函数
语法:
1
2
3
4
5
6
7
8
9
10
11
|
#修改结束符 delimiter // create function 函数名(参数名 类型,...,参数名n 类型n) returns 返回数据类型 begin #SQL语句 return 返回值; end // delimiter ; #调用 select 函数名(); |
输出"hello world"(不带参数的函数)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#判断函数是否存在,存在就删除 drop function if exists f1; delimiter // create function f1() returns varchar (30) begin return 'hello world' ; end // delimiter ; select f1(); + -------------+ | f1() | + -------------+ | hello world | + -------------+ |
传递两个整型求和(带参数的函数)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
drop function if exists f2; delimiter // create function f2(num1 int , num2 int ) returns int begin return num1 + num2; end // delimiter ; select f2(8, 2); + ----------+ | f2(8, 2) | + ----------+ | 10 | + ----------+ |
三.自定义函数相关语法
显示所有的函数:show function status\G #输出的内容很多
删除函数:drop function [if exists] 函数名;
四.存储过程和函数的区别
存储过程可以返回多个值,而自定义函数只能返回一个值
存储过程一般独立执行,而函数往往作为其他SQL语句的一部分来使用
以上所述是小编给大家介绍的数据库_MySQL: mysql函数详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/weixin_43851310/article/details/88606295