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、“断魂最是春来时,一起弹泪过清明”。又是一年清明时节,在这特别的日子里,我们每个人都...
句子查看全文>> -
金领冠睿护奶粉怎么样 金领冠睿护奶粉甜不甜
伊利旗下的金领冠系列相信大家都不陌生,金领冠系列又包含了好几个产品,睿护就是其中之一,下面小编为大家介绍金领冠睿护奶粉甜不甜?金领冠睿护奶粉怎么样金领冠睿护奶粉甜不甜伊利金领冠...
品牌查看全文>> -
轩逸底盘高度是多少厘米?
轩逸底盘高度是12.5厘米,底盘高度又称最小离地间隙,底盘高度直接影响了横向通过半径及纵向通过半径,是衡量汽车通过性能的重要参数。以轩逸2022款经典1.6XE手动舒适版为例:...
问答查看全文>> -
大众捷达空气滤芯多久换,捷达空气滤芯位置及更换方法?
大众捷达空气滤芯更换周期为3万公里,可以1.5万公里检查清洗一次。大众捷达的空气滤芯更换教程位置:大众捷达的空气滤芯于进气管相连,在机舱的前方。①发动机熄火并提前准备好鱼尾钳、...
问答查看全文>> -
彩墨盒哪个牌子好 彩墨盒十大品牌排行榜
为您整理了彩墨盒哪个牌子好,分别有墨中龙、雄彩、巨威、德泰信尼、彩格/CHG、凯瑞德/CTRLP、绽放办公用品、佳能/Canon、增美耗材、步鲁,告诉您2022彩墨盒十大品牌排...
品牌查看全文>>
推荐
- 1永远不原谅一个人的说说精选343
- 2适合配日落照片的说说文案短句 日落黄昏的唯美句子285
- 3发动机失火是什么原因?397
- 4讽刺人自私的经典语句179
- 5etc无缘无故滴滴响绿灯闪是什么原因?218
- 644级台阶是希区柯克的作品吗444
- 7如云分区鹅绒枕好不好?如云分区鹅绒枕怎么样?143
- 8乌龙茶茶艺冲泡流程427