欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Mysql那些事儿之(十二)存储过程_MySQL

程序员文章站 2022-06-16 12:05:17
...
bitsCN.com


Mysql那些事儿之(十二)存储过程

相关链接:

Mysql那些事儿之(一)mysql的安装

http:///database/201210/162314.html;

Mysql那些事儿之(二)有关数据库的操作

http:///database/201210/162315.html;

Mysql那些事儿之(三)有关数据表的操作

http:///database/201210/162316.html;

Mysql那些事儿之(四)数据表数据查询操作

http:///database/201210/162317.html;

Mysql那些事儿之(五)操作时间

http:///database/201210/162318.html;

Mysql那些事儿之(六)字符串模式匹配

http:///database/201210/163969.html;

Mysql那些事儿之(七)深入select查询

http:///database/201210/163970.html;

Mysql那些事儿之(八)索引

http:///database/201210/163971.html;

Mysql那些事儿之(九)常用的函数

http:///database/201210/164229.html;

Mysql那些事儿之(十)触发器一

http:///database/201210/164516.html

Mysql那些事儿之(十一)触发器二

http:///database/201210/164766.html

存储过程是经过编译之后存放在数据库中的sql语句集合。

存储过程怎么写

看例子:

存储过程的语法

Sql代码

create procedure proc_name (proc_peremeter1,.....) --存储过程名称和参数

[characteristic ....]

routine_body --存储过程

调用存储过程的语法

Sql代码

call proc_name --调用存储过程

示例 创建存储过程

当然创建存储过程之前先建立相关的表,为了学习只建立一个简单的表结构;

Sql代码

CREATE TABLE filmall (

id smallint(5) NOT NULL,

film_id smallint(6) NOT NULL,

name varchar(40) DEFAULT NULL,

store_id smallint(6) NOT NULL,

txt text,

PRIMARY KEY (`id`)

) ;

在数据表里插入数据。

写一个简单的存储过程:

Sql代码

--存储过程的名称为proc_film_store,参数为3个:前面两个为输入,后面一个为输出

Sql代码

delimiter $$

Sql代码

create procedure proc_film_store (IN p_film_id INT,IN p_store_id INT,OUT p_film_count INT)

BEGIN

SELECT txt FROM filmall WHERE film_id = p_film_id AND store_id = p_store_id;

SELECT FOUND_ROWS() INTO p_film_count; --将条数放入变量中

END $$

Sql代码

delimiter ;

现在就可以调用存储过程了。

Sql代码

call proc_film_store(1,1,@a);---输入参数

--执行完之后会输出查询出来的数据

--输出查询到的条数

select @a;

存储过程就OK了。

Sql代码

--还有一点要说明的是,书写存储过程时,一般会用到如下命令

--书写存储过程之前,改变结束符

delimiter $$ --这个语句的意思是将结尾符;替换为$$

--写完存储过程之后,再将结束符改回来

delimiter ;

bitsCN.com