MySQL之 存储过程的基本语法

一、会话用户变量定义

方法一

SET @var1 =1[,@var2 =2,...]
示例:SET @price = 5.5;

方法二

SELECTINTO var1[,2 INTO var2,...]
示例:SELECT min(book_price) into para1,max(bool_price) into para2,avg(book_price) into para3;

二、局部变量定义

DECLARE var1[,var2]...数据类型[DEFAULT 默认值]

作用:定义1 ~ n个指定类型的局部变量,并设置初始值。
示例

DECLARE num int DEFAULT 0;

说明DECLARE只能用于BEGIN..END的开头部分定义局部变量。

三、全局系统变量

  • MySQL启动时会根据系统配置定义全局系统变量并初始化为默认值(约393个全局系统变量)。
  • 生存期从MySQL服务器启动时,直到MySQL服务器停止或重启为止。
  • 作用范围是整个系统,其值改变会影响整个系统。
四、语句

IF语句

IF 条件1 THEN 语句序列1
[ELSEIF 条件2 THEN 语句序列2]
...
[ELSE 语句序列n]
END IF

CASE语句1

CASE
WHEN 条件1 THEN 语句序列1
[WHEN 条件2 THEN 语句序列2]
...
[ELSE 语句序列n]
END CASE

CASE语句2

CASE 表达式
WHEN1 THEN 语句序列1
[WHEN2 THEN 语句序列2]
...
[ELSE 语句序列n]
END CASE

WHILE语句

[开始标号:]WHILE条件 DO
程序段
END WHILE[结束标号]

REPEAT语句

[开始标号:]REPEAT
程序段
UNTIL 条件
END REPEAT[结束标号]

LOOP语句

[开始标号:]LOOP
程序段
END LOOP[结束标号]
五、存储过程

什么是存储过程?

  • 一组可以编程的函数,完成特定功能的SQL语句集。
  • 经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需求时)来调用执行。
  • 存储过程是具有名字的一段代码,用来完成一个特定的功能。

为什么要使用存储过程?

  • 将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用。
  • 进行批量处理,提升效率。
  • 统一接口,确保数据的安全。

存储过程的优点

  • 存储过程和函数允许标准组件式编程,提高了SQL语句的重要性、共享性和可移植性。
  • 存储过程能够实现较快的执行速度,能够减少网络流量。
  • 存储过程和函数可以被作为一种安全机制来利用。

编写存储过程的注意事项

  • 存储过程的编写比单句SQL语句复杂,需要用户具有更高的技能和更丰富的经验。
  • 在编写存储过程时,需要创建这些数据库对象权限。

创建存储过程
语法

CREATE PROCEDURE procedure_name
([procedure_prameter[,......]])
[characteristic......] routine_body

说明

procedure_name: 要创建的存储过程的名字
procedure_parameter: 表示存储过程的参数
characteristic: 表示存储过程的特征
routine_body: 表示存储过程的SQL语句代码
可以用BEGIN......END来标志SQL语句的开始和结束

查看存储过程的状态信息

SHOW PROCEDURE STATUS LIKE
'procedure_name'

查看存储过程定义信息

SHOW CREATE PROCEDURE
procedure_name;
``

**修改存储过程**

```sql
ALTER PROCEDURE procedure_name
[characteristic......];

注意:这个语法用了修改存储过程的某些特征,比如读写权限。如果修改存储过程的内容,可以先删除该存储过程,再重新创建。

删除存储过程

DROP PROCEDURE procedure_name;

存储过程的语句结构

delimiter //
	begin
		SQL语句
	end //
delimiter;
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值