相约在冰花 发表于 2023-7-27 02:46:02

MySQL存储过程

什么是存储过程

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。简单理解,存储过程其实就是一堆SQL语句的合并。中间加入了一些逻辑控制。
存储过程的创建方式

存储过程的创建方式:

[*]创建无参存储过程
[*]创建有参存储过程
1.创建无参存储过程

1.语法格式:
delimiter $$ --声明一个存储过程的定义开始
create procedure 存储过程名称() --声明存储过程的名称
begin --表示存储过程内部的SQL语句的开始
    #表示将要执行的SQL语句
end $$ -- 表示声明这个存储过程的定义结束;end: 表示存储过程内部SQL语句的声明结束2.调用存储过程:调用过程类似Java中方法的调用。
call 存储过程名();2.有参存储过程

在调用存储过程的时候,需要调用某些参数,给存储过程;
1.语法格式
delimiter $$ --声明一个存储过程的定义开始
create procedure 存储过程名称(IN 参数名称 参数数据类型) --声明存储过程的名称
begin --表示存储过程内部的SQL语句的开始
    #SQL语句操作
end $$IN关键字:用来指定当前存储过程可以接受的参数列表
参数名称 参数数据类型:在接收参数的时候,存储过程需要指定参数名称和当前参数的类型.
2.有参存储过程调用
call 存储过程名(参数值); #括号!一定!不能省略!3.案例演示

无参:
1:数据准备,创建商品表与订单表,并向商品表中添加数据。
#商品表
CREATE TABLE goods(
        gid INT,
        name VARCHAR(20),
        num INT --库存
);
#订单表
CREATE TABLE orders(
        oid INT,
        gid INT,
        price INT --订单价格
);

INSERT INTO goods VALUES(1,'玫瑰花',99);
INSERT INTO goods VALUES(2,'向日葵',19);
INSERT INTO goods VALUES(3,'彼岸花',9);2.需求:编写存储过程,查询所有商品数据
DELIMITER $$
CREATE PROCEDURE goods_proc()
BEGIN
SELECT * FROM goods;
END $$3.调用存储过程
call goods_proc(); #括号可以省略有参:
1.需求,根据id删除对应的商品数据
DELIMITER $$
CREATE PROCEDURE goods_delById_proc(IN goods_id INT)
BEGIN
DELETE FROM goods WHERE gid = goods_id;
END $$2.调用存储过程
call goods_delById_proc(1); #删除商品id为1的商品数据
来源:https://www.cnblogs.com/SkRun/p/17063377.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: MySQL存储过程