MySQL存储过程
增、删、改、查
-
普通查询
-
联表查询
-
子查询
目的:类似在存储单元中写入函数,在实际使用的过程中,重复这些函数,提高代码的复用率,增加效率。
以及一定程度上防范SQL注入
存储过程如何书写?
1、更改我们MySQL的语句结束符;,把它改成其他的符号
语法:delimiter自定义符号
自定义符号建议使用$$ //
如:delimiter //
2、创建存储过程(当成写个函数)
语法:
create procedure 存储过的名称(in 列名称 属性[约束])begin#具体的,正常的以分号结尾的SQL语句select * from xxx;end//
示例:
create procedure myFunc(in num1 int)beginselect num1+10 as result;end//
3、调用存储过程,就类似于调用函数
语法:call 存储过程name(参数)
– 如:
call myFunc(2)//
4、显示存储过程 创建的详细信息
语法:show create procedure 名称 //
5、删除
语法:drop procedure 名称 //
===== ===== 使用变量=============
使用@符合
1、select ‘hello’ into @x
2、set @y=‘world’
============= 存储过程的参数形式==============
create procedure myFunc(in num2 int)
这个in位置可以有三个情况
-
in 输入参数。外部输入的值,内部修改后不影响外部,不能被返回
-
out 输出参数。可以在存储过程中改变,并可以返回
-
inout 可输入可输出。调用时指定,并可以修改与返回
例如:
create procedure myOne(in var2 int)beginselect var2;select var2=20;select var2;end//set @c=10cell myOne(@c)