mysql存储过程实例详解
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 procedure 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 procedure 存储过程名(参数)
存储过程体:
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;#将语句的结束符号恢复为分号
-
凌渡改装轮毂可以吗?
凌渡改装轮毂注意事项:1、改装轮毂不宜改装过宽尺寸,轮毂越大,为了保持车辆扁平比,轮胎就会越薄,对地面的感受就更明显,通过凹凸不平的路段时会大大降低乘车人的舒适度;2、需要时常...
问答查看全文>> -
2022年财务人员工作总结
财务人员工作总结怎么写呢?一起来看看小编今天的分享吧。1、财务人员工作总结首先可以描写作为财务人员的日常基础工作和职责,例如编制各类财务报表等;2、然后可以描写具备的专业知识和...
教育查看全文>> -
安全带拉出来弹不回去怎么办
是卷带弹簧长时间使用失去弹性导致的。解决此问题只需要更换卷带弹簧,或更换整个安全带机构。很多车子随着使用时间的增加,都会出现安全带不能自动弹回去的问题。有些是因为安全带脏污导致...
问答查看全文>> -
什么让生活更美好小学作文范文
什么让生活更美好小学作文怎么写?要从哪些方面去写,一起来看看小编今天的分享吧。什么让生活更美好小学作文主要由三个部分构成。首先明确本次作文的主题,叙述关于想要记录主题事项的具体...
教育查看全文>> -
大众桑塔纳水温表指针如何看
只用水温报警灯,红灯是表示水温过高;蓝灯表示水温过低。新款大众桑塔纳没有水温表,只有水温报警灯。水温报警灯亮提示车主及时添加防冻液。当水温灯亮红灯时表明发动机水温过高,需停车休...
问答查看全文>>
推荐
- 1现代瑞纳火花塞怎么换?214
- 2雅阁二手车怎么选?479
- 3轮胎爆胎后怎么处理?394
- 4身体不舒服的心情说说321
- 5经典爱情表白语录短句 爱情的表白语录大全214
- 6怎么看微信主动加过谁124
- 7福特福克斯加水在哪里289
- 8京东保价在哪里申请有效期 京东保价时间过了怎么申请保价205