我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

(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() //平方根

二维码
扫一扫在手机端查看

本文链接:https://by928.com/196.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线