MySQL 存储过程探秘

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 关于存储过程的优点,本文不再阐述。这里只是对创建存储过程时可能遇到的问题做一下简单的分析。必备基础这里说的基础,是相关于如何创建一个存储过程的。DELIMITER:分隔符,定界符。

关于存储过程的优点,本文不再阐述。这里只是对创建存储过程时可能遇到的问题做一下简单的分析。


必备基础

这里说的基础,是相关于如何创建一个存储过程的。

  • DELIMITER:分隔符,定界符。
    作用就是:作为命令执行的分隔,例如我们平时使用的;号。我们可以使用delimiter来手动的更改它。

  • PROCEDURE : 创建存储过程的关键字。类似于Table,以及View等。

  • SHOW PROCEDURE STATUS 或者 SHOW PROCEDURE STATUS WHERE DB=’TARGET DATABASE NAME’
    show出创建的存储过程,便于进行浏览。

  • 变量的使用及参数相关:这些都是基础,在这里就不

    重复的造轮子。

示例

先直接看一个例子吧。

mysql> use practice;
Database changed

mysql> show tables;
+--------------------+
| Tables_in_practice |
+--------------------+
| user               |
| userinfo           |
+--------------------+
2 rows in set (0.00 sec)

mysql> select * from user;
+----+--------+
| id | number |
+----+--------+
|  1 |     11 |
|  2 |     22 |
|  3 |     33 |
|  4 |     44 |
|  5 |     55 |
+----+--------+
5 rows in set (0.00 sec)

# 开始存储过程的创建 #
mysql> delimiter $
mysql> drop procedure if exists hi;
    -> create procedure hi()
    -> begin
    -> select * from user;
    -> end$
Query OK, 0 rows affected (0.04 sec)

Query OK, 0 rows affected (0.04 sec)

调用存储过程同样很简单。

mysql> call hi()$
+----+--------+
| id | number |
+----+--------+
|  1 |     11 |
|  2 |     22 |
|  3 |     33 |
|  4 |     44 |
|  5 |     55 |
+----+--------+
5 rows in set (0.00 sec)

案例分析

想必大家会很奇怪,因为

call hi()$
为什么不是’;’号呢?

这里其实我前面已经讲过了,那就是使用DELIMITER可以动态的更改我们的命令执行结束符号。由于在创建存储过程的时候会有很多条SQL语句出现,所以为了不冲突,就将结束符改成了$了。

我们也可以改过来,如下:

mysql> delimiter ;
mysql> call hi();
+----+--------+
| id | number |
+----+--------+
|  1 |     11 |
|  2 |     22 |
|  3 |     33 |
|  4 |     44 |
|  5 |     55 |
+----+--------+
5 rows in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

是不是又恢复正常了呢?

需要注意

  • 我在使用存储过程的时候,发现打开终端如果直接创建存储过程的时候,是不能创建的。因为我们必须要先选择一个数据库,然后才能创建一个存储过程。

  • 然后就是存储过程是全局显示的,虽然其是存在于某一个特定的数据库中。

  • 创建存储过程的时候,要先判断命名空间之下的重名否?否则后悔也来不及的。

简单的介绍大致就是这些了。比较简单,但是却非常的重要。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
存储 SQL 关系型数据库
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
|
1月前
|
存储 关系型数据库 MySQL
Mysql基础第二十六天,使用存储过程
Mysql基础第二十六天,使用存储过程
28 0
Mysql基础第二十六天,使用存储过程
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】9、存储过程
【MySQL 数据库】9、存储过程
202 0
|
2月前
|
存储 SQL 关系型数据库
[MySQL]存储过程
[MySQL]存储过程
74 0
[MySQL]存储过程
|
2月前
|
存储 关系型数据库 MySQL
MySQL 中的存储过程-3
MySQL 中的存储过程
20 0
|
2月前
|
存储 SQL 关系型数据库
MySQL 中的存储过程-2
MySQL 中的存储过程
18 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL 中的存储过程-1
MySQL 中的存储过程
39 2
|
10天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
1月前
|
关系型数据库 MySQL 数据库连接
关于MySQL-ODBC的zip包安装方法
关于MySQL-ODBC的zip包安装方法
|
28天前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
81 1