翼度科技»论坛 编程开发 mysql 查看内容

MySQL存储过程

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
什么是存储过程

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

存储过程的创建方式:

  • 创建无参存储过程
  • 创建有参存储过程
1.创建无参存储过程

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

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

无参:
1:数据准备,创建商品表与订单表,并向商品表中添加数据。
  1. #商品表
  2. CREATE TABLE goods(
  3.         gid INT,
  4.         name VARCHAR(20),
  5.         num INT --库存
  6. );
  7. #订单表
  8. CREATE TABLE orders(
  9.         oid INT,
  10.         gid INT,
  11.         price INT --订单价格
  12. );
  13. INSERT INTO goods VALUES(1,'玫瑰花',99);
  14. INSERT INTO goods VALUES(2,'向日葵',19);
  15. INSERT INTO goods VALUES(3,'彼岸花',9);
复制代码
2.需求:编写存储过程,查询所有商品数据
  1. DELIMITER $$
  2. CREATE PROCEDURE goods_proc()
  3. BEGIN
  4.   SELECT * FROM goods;
  5. END $$
复制代码
3.调用存储过程
  1. call goods_proc(); #括号可以省略
复制代码
有参:
1.需求,根据id删除对应的商品数据
  1. DELIMITER $$
  2. CREATE PROCEDURE goods_delById_proc(IN goods_id INT)
  3. BEGIN
  4.   DELETE FROM goods WHERE gid = goods_id;
  5. END $$
复制代码
2.调用存储过程
  1. call goods_delById_proc(1); #删除商品id为1的商品数据
复制代码
来源:https://www.cnblogs.com/SkRun/p/17063377.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具