mysql存储过程实例详解
发布网友
发布时间:2024-05-02 05:33
我来回答
共1个回答
热心网友
时间:2024-07-31 00:19
mysql存储过程是怎样的呢?下面就让我们一起来了解一下吧:
mysql中存储过程是属于一种在数据库中存储复杂程序,以便于外部程序调用的一种数据库对象。
存储过程一般来说是为了完成特定功能的SQL语句集,经过编译后创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参数(通常是在需要时)来进行调用执行。
mysql存储过程优点:
1、存储过程可以进行封装,并且隐藏复杂的商业逻辑。
2、存储过程能够回传值,并能接受参数。
3、存储过程通常是无法使用SELECT指令来进行运行的,由于它是属于子程序,与查看表、数据表或是用户定义函数不同。
4、存储过程能够用于数据检验,强制实行商业逻辑等。
当然,它也存在了一部分缺点:
1、存储过程一般是定制化于特定的数据库上,因为其所支持的编程语言不同。当切换到了其他厂商的数据库系统时,就需要重写原有的存储过程了。
2、存储过程的性能调校与撰写,一般会受限于各种数据库系统。
参考示例:
存储过程的操作,具体代码如下:
创建:
CREATE PROCEDURE sp_name([proc_parameter[,...]])
[characteristic...] routine_body
proc_parameter:
[IN|OUT|INOUT] param_name type #type: Any valid MySQL data type
characteristic:
LANGUAGE SQL
|[NOT] DETERMINISTIC|{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT string
routine_body:
Valid SQL procere statement or statements
修改:
ALTER PROCEDURE sp_name [characteristic...]
characteristic:
{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA}|SQL SECURITY {DEFINAER|INVOKER}|COMMENT string
调用:
CALL sp_name([parameter[,...]])
删除:
DROP PROCEDURE sp_name
查看:
show PROCEDURE STATUS [like pattern]
SHOW CREATE PROCEDURE sp_name
在MYSQL 存储过程中的关键语法:
声明语句结束符,可自定义为:
DELIMITER $$
或
DELIMITER //
声明存储过程,即:
CREATE PROCEDURE demo_in_parameter(IN p_in int)
存储过程开始与结束符号,即:
BEGIN .... END
变量赋值,即:
SET @p_in=1
变量定义:
DECLARE l_int int unsigned default 4000000;
创建mysql存储过程、存储函数:
create procere 存储过程名(参数)
存储过程体:
create function 存储函数名(参数)
示例:
若是删除给定球员参加的所有比赛,具体代码为:
mysql delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以为自定义)
mysql CREATE PROCEDURE delete_matches(IN p_playerno INTEGER)
- BEGIN
- DELETE FROM MATCHES
- WHERE playerno = p_playerno;
- END$$
Query OK, 0 rows affected (0.01 sec)
mysql delimiter; #将语句的结束符号恢复为分号
mysql存储过程实例详解
创建mysql存储过程、存储函数:create procedure 存储过程名(参数)存储过程体:create function 存储函数名(参数)示例:若是删除给定球员参加的所有比赛,具体代码为:mysql delimiter $$#将语句的结束符号从分号;临时改为两个$$(可以为自定义)mysql CREATE PROCEDURE delete_matches(IN p_playerno INTEGE...
mysql 存储过程总结(一)
1、存储过程定义:存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发 人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。2、特点:封装,复用 ...
在MySQL中创建带有IN和OUT参数的存储过程的方法
mysql 存储过程
(1). 格式 MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]])[特性 ...] 过程体 这里先举个例子:mysql> DELIMITER // mysql> CREATE PROCEDURE proc1(OUT s int)-> BEGIN -> SELECT COUNT(*) INTO s FROM user;-> END -> // mysql> DELIMITER ;注:(1)这里...
MySQL创建存储过程
存储过程是数据库管理中常用的技术之一,可以很方便的做些类似数据统计、数据分析等工作,市场上的SQL SERVER、ORACLE、MySQL都支持存储过程,但不同的数据库环境语法结构有点区别,本案例给大家讲解下MySQL创建存储过程的方法 使用常规的创建存储过程方法,发现各种报错,无法执行,在SQL SERVER下很容易成功的...
mysql 存储过程总结(二)if语句、参数
上述的需求我们虽然已经实现了,但是也存在一些问题,比如:score 分数我们是在存储过程中定义 死的,而且最终计算出来的分数等级,我们也仅仅是最终查询展示出来而已。那么我们能不能,把score分数动态的传递进来,计算出来的分数等级是否可以作为返回值返回呢? 答案是肯定的,我们可以通过接下来所讲解的 ...
mysql 存储过程 语法
mysql中存储过程的关键语法如下:1、声明语句结束符,可以自定义:DELIMITER $$或DELIMITER //2、声明存储过程:CREATE PROCEDURE demo_in_parameter(IN p_in int) 3、存储过程开始和结束符号:BEGIN ... END4、变量赋值:SET @p_in=15、变量定义:DECLARE l_int int unsigned default 4000000;6、...
mysql存储过程怎么写
MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。下面我们来介绍一下如何创建一个存储过程。语法格式:可以使用 CREATE PROCEDURE 语句创建存储过程。语法格式如下:...
mysql如何创建存储过程?
1用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test'4 创建一个简单的存储过程 mysql>create procedure hi() select 'hello';5 存储过程创建完毕,看怎么调用它 mysql>call hi();显示结果 mysql> call hi(); +---+ | hello |...
关于mysql存储过程
content varchar(100))eg:测试数据:20 计算机应用 应用软件开发 21 计算机操作系统 操作系统详解 22 c# c#开发实战 === 说明一点:tid编号是连续的,如(1,2,3,4···)存储过程如下,测试通过:create proc my_search beg_id int ,end_id int as declare @names varchar(200),bcp...