首页 > 数据库 >MySQL存储过程

MySQL存储过程

时间:2023-07-26 19:45:54浏览次数:47  
标签:存储 goods -- SQL 调用 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的商品数据

标签:存储,goods,--,SQL,调用,MySQL,过程
From: https://www.cnblogs.com/SkRun/p/17063377.html

相关文章

  • Mysql数据库
    Myspl数据库:数据库:数据库【按照数据结构来组织、存储和管理数据的仓库】。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于公司来说是最宝贵的财富,程序员工作就是对数据进行管理,包括运算、流转、存储、展示等,数据库最重要的功能就是......
  • MYSQL安装
    安装环境:Win1064位软件版本:MySQL5.7.24解压版一、下载点开下面的链接:https://downloads.mysql.com/archives/community/选择选择和自己系统位数相对应的版本点击右边的Download,此时会进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:不用理会上面的登......
  • 在接口自动化测试过程中,如何开展接口自动化测试?单个模块和多个模块关联又怎么去做测试
    (一)接口自动化如何开展?0、调研、前提准备和思考a)前提:1、正式设计用例的时候,结合postman/jmeter这样的工具2、去设计不同的测试数据,发起请求,查看响应结果与设计是否一致3、(要走一遍手工测试的)--发现的bugb)用例的存储方式:1、excel表格-配置json路径2、json文件-......
  • mysql8.0 centos7 xtrabackup步骤
    mysql8.0centos7xtrabackup步骤wgethttps://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-28/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpmyuminstallcmakegccgcc-c++libaiolibaio-develauto......
  • 基于JSP和MySQL的银行柜员业务绩效考核系统的设计与实现
    完整资料进入【数字空间】查看——搜索"writebug"摘要当今社会己进入信息社会时代,信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)之一。信息是管理的基础,是进行决策的的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,占有重......
  • mysql5.7 centos7 xtrabackup步骤
    mysql5.7centos7xtrabackup步骤wgethttps://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpmyuminstallcmakegccgcc-c++libaiolibaio-develautomake......
  • centos7 用docker 部署 nacos集群--以mysql持久化--以nginx代理
     创建一个文件夹,把四个配置文件放进去,然后运行:dockercompose-f-dnacos.ymlupmysql-schema.sqlnacos.confnacos.envnacos.yml  mysql-schema.sql内容:/**Copyright1999-2018AlibabaGroupHoldingLtd.**LicensedundertheApacheLicense,Version2.......
  • 传统IO过程以及零拷贝简单介绍
    传统IO过程整个IO过程涉及到三个部分,分别是用户缓冲区,内核缓冲区(PageCache)以及硬件。用户态CPU发起IO请求,即发起read()系统调用,随后进程阻塞,用户态切换到内核态。内核态DMA发起IO请求与硬件进行DMA拷贝到内核缓冲区中,之后内核缓冲区与用户缓冲区进行CPU拷贝,至此read()函数调用......
  • MySql —— 死锁场景
    参考:小林coding: https://xiaolincoding.com/mysql/lock/deadlock.html出世&入世:https://blog.csdn.net/weixin_54828627/article/details/129379140 死锁的四个必要条件:互斥占有且等待不可强占用循环等待一、批量更新/删除数据-同时加锁记录多InnoDB是边扫描边加锁......
  • 转:MySQL数据库给表添加索引
    MySQL数据库给表添加索引   ......