(255)“这不会是”;
二. 变量赋值
SET 变量名 = 表达式值 [, = ...]
三. 用户变量
ⅰ. 在 MySQL 客户端中使用用户变量
mysql > 'Hello World' 到 @x;
mysql > @x;
+-------------+
| @x|
+-------------+
| 你好世界|
+-------------+
mysql > SET @y='残酷的世界';
mysql > @y;
+--------------------+
| @y |
+--------------------+
| 残酷的世界|
+--------------------+
mysql > SET @z=1+2+3;
mysql > @z;
+------+
| @z |
+------+
| 6 |
+------+
二. 在存储过程中使用用户变量
mysql > ( ) (@,'世界');
mysql > SET @='你好';
mysql > 调用 ( );
+--------------------------------------+
| (@,'世界') |
+--------------------------------------+
| 你好世界|
+--------------------------------------+
ⅲ. 在存储过程之间传递全局范围的用户变量
mysql> p1() SET @='p1';
mysql> p2() ('最后是',@);
mysql> 调用 p1( );
mysql> 调用 p2( );
+------------------------------------------------ -+
| ('最后是',@ |
+------------------------------------------------ -+
| 最后是 p1 |
+------------------------------------------------ -+
注意:
①用户变量名一般以@开头
②滥用用户变量会使程序难以理解和管理。
(5)。 评论
MySQL存储过程可以使用两种风格的注释
双模杆:--
这种风格一般用于单行注释
c风格:一般用于多行注释
例如:
mysql > //
mysql > proc1 --name 存储过程名称
->(输入)
-> 开始
-> 字符(10);
-> 如果 = 17 那么
-> SET = '鸟';
-> 其他
-> 设置 = '';
-> 结束如果;
-> INTO();
-> 结束
-> //
mysql >;
4.调用MySQL存储过程
使用 call 和您的过程名称以及括号。 在括号中,根据需要添加参数。 参数包括输入参数、输出参数、输入输出参数。 具体调用方法请参考上面的例子。 PHP程序中调用MySQL存储过程的例子可以参考本站的文章:
mysql创建存储过程并在php中调用
PHP和mysql使用存储过程
5、MySQL存储过程的查询
我们知道一个数据库下有哪些表,一般用show; 查看它们。 所以我们要查看某个数据库下的存储过程。 我们也可以使用吗? 答案是我们可以查看某个数据库下的存储过程,而且是有序的。
我们可以用
select name from mysql.proc where db=’数据库名’;
或者
select routine_name from information_schema.routines where routine_schema='数据库名';
或者
show procedure status where db='数据库名';
进行查询。
如果我们想了解一个存储过程的详细信息,我们应该怎么做呢? 是否也可以像操作表一样通过表名来查看?
答案是:我们可以查看存储过程的详细信息,但是我们需要使用另一种方法:
SHOW CREATE PROCEDURE 数据库.存储过程名;
您可以查看当前存储过程的详细信息。
6、MySQL存储过程的修改
改变
对预先指定的存储过程的更改不会影响相关存储过程或存储功能。
7、删除MySQL存储过程
删除存储过程比较简单,就像删除表一样:
降低
从 MySQL 表中删除一个或多个存储过程。
8、MySQL存储过程的控制语句
(1). 变量范围
内部变量在其作用域内具有较高的优先级,当执行到end.时,内部变量消失。 此时,已经超出了它的范围。 该变量不再可见。 它应该存储在
这个声明的变量不能再在过程之外找到,但是你可以传递out参数或者为其赋值
赋予会话变量以保存其值。
mysql > //
mysql>proc3()
-> 开始
-> x1 (5) '外部';
-> 开始
-> x1 (5) '内部';
-> x1;
-> 结束;
-> x1;
-> 结束;
-> //
mysql >;
(2)。 条件语句
Ⅰ. if-then-else 语句
mysql > //
mysql>proc2(IN int)
-> 开始
-> var int;
-> 设置 var=+1;
-> 如果 var=0 那么
-> 进入 t(17);
-> 如果结束;
-> 如果 =0 那么
-> t 设置 s1=s1+1;
->其他
-> t 设置 s1=s1+2;
-> 如果结束;
-> 结束;
-> //
mysql >;
二. 案例陈述:
mysql > //
mysql > proc3(整数)
-> 开始
-> var int;
-> 设置 var=+1;
-> 案例变量
-> 当 0 时则
-> 进入 t(17);
-> 当 1 时
-> 进入 t(18);
->其他
-> 进入 t(19);
-> 结束情况;
-> 结束;
-> //
mysql >;
(3)。 循环语句
Ⅰ. 同时····结束同时:
mysql > //
mysql > proc4()
-> 开始
-> var int;
-> 设置变量=0;
-> while var -> into t (var);
-> 设置 var=var+1;
-> 结束同时;
-> 结束;
-> //
mysql >;
二. ···· 结尾:
它在执行操作后检查结果,而 while 在执行前检查。
mysql > //
mysql>proc5()
-> 开始
-> v int;
-> 设置 v=0;
->
-> 进入 t(v);
-> 设置 v=v+1;
-> 直到 v>=5
-> 结束;
-> 结束;
-> //
mysql >;
三. 循环·····结束循环:
Loop循环不需要初始条件,这一点与while循环类似。 同时,它不需要像循环那样的结束条件。 leave语句的意思是离开循环。
mysql > //
mysql > proc6 ()
-> 开始
-> v int;
-> 设置 v=0;
-> :循环
-> 进入 t(v);
-> 设置 v=v+1;
-> 如果 v >=5 那么
-> 离开;
-> 如果结束;
-> 结束循环;
-> 结束;
-> //
mysql >;
四. 标签:
标签可以用在begin while 或loop 语句之前,并且语句标签只能在合法语句之前使用。 您可以跳出循环,使执行指令到达复合语句的最后一步。
(4)。 迭代
Ⅰ. :
通过引用其标签来重新启动复合语句
mysql > //
mysql > ()
-> 开始
-> v int;
-> 设置 v=0;
-> :循环
-> 如果 v=3 那么
-> 设置 v=v+1;
->;
-> 如果结束;
-> 进入 t(v);
-> 设置 v=v+1;
-> 如果 v>=5 那么
-> 离开;
-> 如果结束;
-> 结束循环;
-> 结束;
-> //
mysql >;
9.MySQL存储过程的基本功能
(1).类
(str) //返回字符串字符集
([,...]) //连接字符串
INSTR ( , ) //返回第一次出现的位置,如果不存在则返回0
LCASE() //转换为小写
LEFT ( , ) //从左边取一个字符
( ) //长度
( ) //从文件中读取内容
( , [, ] ) 与 INSTR 相同,但可以指定起始位置
LPAD ( , ,pad ) //在开头重复添加pad,直到字符串长度为
LTRIM() //去掉前导空格
(,count) //重复count次
(str, ,) //替换为str
RPAD ( , ,pad) //在str后面添加pad,直到长度为
RTRIM() //去除后端空格
( , ) //逐个字符比较两个字符串的大小,
(字符串,[,])
//从str的开头,取一个字符。 注意:MySQL中处理字符串时,默认首字符下标为1,即参数必须大于等于1
mysql> ('abcd',0,2);
+------------------------+
| ('abcd',0,2) | ('abcd',0,2) |
+------------------------+
| |
+------------------------+
一组 1 行(0.00 秒)
mysql> ('abcd',1,2);
+------------------------+
| ('abcd',1,2) | ('abcd',1,2) |
+------------------------+
| ab |
+------------------------+
一组 1 行(0.02 秒)
TRIM([[BOTH||] [] FROM]) //删除指定位置的指定字符
UCASE() //转换为大写
RIGHT(,) //获取最后一个字符
SPACE(count) //生成count个空格
(2).数学
ABS() //绝对值
BIN() //将十进制转换为二进制
( ) //向上取整
CONV(,,) //十六进制转换
FLOOR () //向下取整
(, ) //保留小数位数
HEX() //转换为十六进制
注意:可以将字符串传递给 HEX(),并且将返回其 ASC-11 代码。 例如,HEX('DEF') 返回
还可以传入十进制整数并返回其十六进制代码,例如 HEX(25) 返回 19
LEAST ( , [,..]) //求最小值
MOD ( , ) //求余数
POWER (,power) //求指数
RAND([seed]) //随机数
ROUND([,]) //四舍五入到小数点后位数]
注意:并非所有返回类型都是整数,例如:
(1). 默认变为整数值
mysql> 轮(1.23);
+-------------+
| 圆(1.23) |
+-------------+
| 1 |
+-------------+
一组 1 行(0.00 秒)
mysql> 轮(1.56);
+-------------+
| 圆(1.56) |
+-------------+
| 2 |
+-------------+
一组 1 行(0.00 秒)
(2)。 您可以设置小数位数并返回浮点数据。
mysql> 轮(1.567,2);
+----------------+
| 轮(1.567,2) |
+----------------+
| 1.57 | 1.57
+----------------+
一组 1 行(0.00 秒)
符号 ( ) //
(3)。 日期和时间类
(date2, ) //将添加到date2
( , ,toTZ ) //转换时区
( ) //当前日期
( ) //当前时间
( ) //当前时间戳
DATE() //返回日期部分
(date2, ) //向date2添加日期或时间
( , ) //使用格式显示
(date2, ) //从date2中减去时间
(date1,date2) //两个日期之间的差异
DAY(日期) //返回日期中的第几天
(date) //英语周
(date) //周(1-7), 1是星期日
(date) //一年中的第几天
(FROM date) //从date中提取日期的指定部分
(year,day) //给定年份和年份中的日期,生成日期字符串
(hour, , ) //生成时间字符串
(date) //英文月份名称
NOW() //当前时间
( ) //将秒转换为时间
( , ) //将字符串转换为时间并以格式显示
( , ) //两个时间差
(time) //时间到秒]
周 ([, ]) //周
YEAR ( ) //年份
() //该月的第几天
HOUR() //小时
(date) //date月份的最后一个日期
() //微秒
MONTH() //月份
() //返回符号,正数或负数或0
SQRT() //平方根
扫一扫在手机端查看
-
Tags : 变量中存储的值通过什么访问_mysql存储过程详解
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。