MySQL存储过程与函数_gw

MySQL存储过程与函数

函数

数学函数

abs(x):返回x的绝对值
MySQL存储过程与函数_gw

rand():返回0到1的随机数(0-0.9999…,1是取不到的)
MySQL存储过程与函数_gw

mod(x,y):返回x除以y以后的余数
MySQL存储过程与函数_gw

-power(x,y):返回x的y次方
MySQL存储过程与函数_gw

round(x):返回离x最近的整数(四舍五入,只看小数点后第一位)
MySQL存储过程与函数_gw

round(x,y):保留x的y位小数四舍五入后的值
MySQL存储过程与函数_gw

sqrt(x):返回x的平方根
MySQL存储过程与函数_gw

truncate(x,y):返回数字x截断为y位小数的值
MySQL存储过程与函数_gw

ceil(x):返回大于或等于x的最小整数(向上取整数)
MySQL存储过程与函数_gw

floor(x):返回小于或等于x的最大整数(向下取整数)
MySQL存储过程与函数_gw

greatest(x1,x2…):返回集合中最大的值
MySQL存储过程与函数_gw

least(x1,x2…):返回集合中最小的值
MySQL存储过程与函数_gw

聚合函数

1、对表中数据记录进行集中概括而设计的一类函数
2、常用的聚合函数(只会产生一个值)

avg(字段名) 返回指定字段的平均值
MySQL存储过程与函数_gw

count(字段名) 返回指定字段中非NULL值的个数
MySQL存储过程与函数_gw

min(字段名) 返回指定字段的最小值
MySQL存储过程与函数_gw

max(字段名) 返回指定字段的最大值
MySQL存储过程与函数_gw

sum(字段名) 返回指定字段的所有值之和
MySQL存储过程与函数_gw

字符串函数

length(x):返回字符串x的长度(空格也算)
MySQL存储过程与函数_gw

trim():返回去除指定格式的值(只能去除前后的空格)
MySQL存储过程与函数_gw

concat(x,y):将提供的参数x和y拼接成一个字符串
MySQL存储过程与函数_gw

upper(x):将字符串x的所有字母变成大写字母
MySQL存储过程与函数_gw

lower(x):将字符串x的所有字母变成小写字母
MySQL存储过程与函数_gw

left(x,y):返回字符串x的前y个字符
MySQL存储过程与函数_gw

right(x,y):返回字符串x的后y个字符
MySQL存储过程与函数_gw

repeat(x,y):将字符串x重复y次
MySQL存储过程与函数_gw

space(x):返回x个空格(结合concat使用)
MySQL存储过程与函数_gw

replace(x,y,z):将字符串z替代字符串x中的字符串y
MySQL存储过程与函数_gw

strcmp(x,y):比较x和y,返回的值可以为-1 <,0 =,1 >
MySQL存储过程与函数_gw

substring(x,y,z):获取从字符串x中的第y个位置开始长度为z的字符串
格式:substring(完整字符串,起始位置,长度); #起始位置从1开始
MySQL存储过程与函数_gw

reverse(x):将字符串x反转
MySQL存储过程与函数_gw

日期时间函数

curdate():返回当前时间的年月日
MySQL存储过程与函数_gw

curtime():返回当前时间的时分秒
MySQL存储过程与函数_gw

now():返回当前时间的日期和时间MySQL存储过程与函数_gw

month(x):返回日期x中的月份值
MySQL存储过程与函数_gw

hour(x):返回x中的小时值
MySQL存储过程与函数_gw

minute(x):返回x中的分钟值
MySQL存储过程与函数_gw

second(x):返回x中的秒钟值
MySQL存储过程与函数_gw

dayofweek(x):返回x是星期几,1星期日,2星期一,3星期二…
MySQL存储过程与函数_gw

dayofmonth(x):计算日期x是本月的第几天
MySQL存储过程与函数_gw

dayofyear(x):计算日期x是本年的第几天
MySQL存储过程与函数_gw

MySQL存储过程

存储过程简介

1、从 5.0 版本才开始支持

2、是一组为了完成特定功能的SQL语句集合(封装)

3、比传统SQL速度更快、执行效率更高

4、存储过程的优点

(1)执行一次后,会将生成的二进制代码驻留缓冲区(便于下次执行),提高执行效率
(2)SQL语句加上控制语句的集合,灵活性高
(3)在服务器端存储,客户端调用时,降低网络负载
(4)可多次重复被调用,可随时修改,不影响客户端调用
(5)可完成所有的数据库操作,也可控制数据库的信息访问权限

5、为什么要用存储过程?

(1)减轻网络负载;
(2)增加安全性

创建存储过程

1、使用create procedure语句创建存储过程
2、参数分为
输入参数:in
输出参数:out
输入/输出参数:inout
3、存储过程的主体部分,被称为过程体;以begin开始,以end$$结束
4、具体格式

delimiter $$
create procedure 存储过程名(in 参数名 参数类型)
begin
#定义变量
declare 变量名 变量类型
#变量赋值
set 变量名 = 值
  sql 语句1;
  sql 语句2;
  ...
end$$
delimiter ;(有空格)

举例:

mysql> delimiter $$
mysql> create procedure test ()
    -> begin select * from test;
    -> end $$
Query OK, 0 rows affected (0.00 sec)

mysql> 

MySQL存储过程与函数_gw

调用存储过程

call 存储过程名(实际参数);

举例:

mysql> delimiter ;
mysql> call test;

MySQL存储过程与函数_gw

查询存储过程

show procedure status where db=‘数据库’;

修改存储过程

存储过程的修改分为特征的修改和业务内容的修改。
特征的修改语法结构如下:

alter procedure 存储过程名 [ <特征> … ]

删除存储过程

删除存储过程的语法:

drop {procedure|function|if exits} <过程名>

MySQL存储过程与函数_gw

上一篇:LTE信令流程——去附着


下一篇:Linux路由宣