首页 > 数据库 >mysql存储过程和游标

mysql存储过程和游标

时间:2023-01-26 15:22:45浏览次数:41  
标签:存储 END 游标 Blog DELIMITER mysql 过程 PROCEDURE

创建存储过程

存储过程和定义函数相似,使用CREATE PROCEDURE 存储名(),BEGIN 和 END之间为“函数体”。

CREATE TABLE Blog (
    author VARCHAR(25),
    blog TEXT,
    createat DATETIME,
    updateat TIMESTAMP
    )
-- 创建存储过程 CREATE PROCEDURE Blog_author() BEGIN SELECT COUNT(*) AS number FROM Blog; END

注意:默认的mysql语句分隔符为;如果命令行要解释存储过程自身的;字符,则它们最终不会成为存储过程的成分,这会使得存储过程中的sql语句出现错误。上面的创建存储过程语句可能会出现错误,可以使用下面的编写方式:

DELIMITER //
CREATE PROCEDURE Blog_author()
BEGIN
    SELECT COUNT(*) AS number FROM Blog;
END //
DELIMITER;

DELIMITER //告诉命令行使用//作为新的语句结束符,可以看到标志存储过程结束的END定义为END //。这样存储过程体内的;仍然保持不动,并且正确地传递给数据库引擎。最后使用DELIMITER ;来恢复分隔符为;

带参数的存储过程

使用OUT定义传出参数,使用IN定义传入参数。使用INTO将数据保存到参数中。

DELIMITER //
CREATE PROCEDURE Blog_blog(OUT content TEXT, IN `name` VARCHAR(25))
BEGIN
    SELECT blog INTO content FROM Blog WHERE author = `name`;
END //
DELIMITER;

调用存储过程

使用CALL 存储名来调用存储过程,其中传入的参数变量使用@开头,后面为变量名。数据会右存储过程体内的INTO语句保存到变量中,然后使用select @变量名查看变量内容。

CALL Blog_blog(@content, '大帝石3');
SELECT @content;

存储过程体内的一些使用

在存储过程体内定义局部变量

使用DECLARE 来定义局部变量。

 

 删除存储过程

使用DROP PROCEDURE 存储名来删除定义的存储过程。如果不存在,则DROP PROCEDURE会产生一个错误。因此可以使用 DROP PROCEDURE IF EXISTS.

标签:存储,END,游标,Blog,DELIMITER,mysql,过程,PROCEDURE
From: https://www.cnblogs.com/dadishi/p/17067842.html

相关文章

  • MySQL高级【存储过程】
    1:存储过程1.1:介绍存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于......
  • 认真学习MySQL中的二进制日志(binlog)与中继日志(Relay log)
    binlog即binarylog,二进制日志文件,也叫作变更日志(updatelog)。它记录了数据库所有执行的DDL和DML等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语句se......
  • MySQL
    MySQL概述数据库相关概念数据库:存储数据的仓库,数据时有组织的进行存储,简称DataBase(DB)数据库管理系统:操纵和管理数据库的大型软件,简称DataBaseManagementSystem(DBM......
  • mysqldump最佳实践(2)
    ​导入存储过程、函数和触发器默认情况下,mysqldump导入视图和触发器。但是,它不导入过程、函数和事件。要导入过程和函数,应该指定--routines选项,要导入事件,应该指定--event......
  • 函数计算与对象存储实现MapReduce
    Serverless架构可以在很多领域发挥极具价值的作用,包括监控告警、人工智能、图像处理、音视频处理等。同样,在大数据领域,Serverless架构仍然可以有良好的表现。以WordCount为......
  • Day03 - 事务索引查询及PyMySQL
    1.将查询结果插入到另一张表中思考目前只有一个goods表,我们想要增加一个商品分类信息,比如:移动设备这个分类信息,只通过goods表无法完成商品分类的添加,那么如何实现添加......
  • Day02 - MySQL的条件查询
    1.聚合函数聚合函数的介绍聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(groupby)来使用,用于统计和计算分组数据。常用的聚合函数:1.count(co......
  • mysqldump最佳实践(1)
    1.空间需求首先,重要的是要确保目标数据库有足够的空间来保存导入的数据。具体来说,如果在目标MySQL数据库上启用了二进制日志,则需要非常谨慎,因为导入数据时生成的二进制日......
  • MySQL数据库
    目录数据库MySQL一、MySQL基本操作SQL语句二、修改字符编码配置文件以及数据库存储引擎1.修改字符编码2.数据库存储引擎3.严格模式三、创建表的完整的语法四、字段类型1.字......
  • 如何在 MySQL 中对选择查询获得的结果进行排序?
    通常从表中选择某些数据或行。行按它们在表中出现的顺序返回。我们有时可能会要求从表中选择的行必须相对于某些列按升序或降序返回给我们。“ORDERBY”语句用于对某些列的......