一起聊聊MySQL基础之自定义变量和语句结束分隔符

本篇文章给大家带来了mysql中自定义变量和语句结束分隔符的相关知识,希望对大家有帮助。 存储程序 有时候为了完成一个常用的功能需要执行许多条语句,每次都在客户端里一条一条

    本篇文章给大家带来了mysql中自定义变量和语句结束分隔符的相关知识,希望对大家有帮助。<p><img src="https://img.mryunwei.com/uploads/2023/04/20230416110304496.jpg"></p>

存储程序

有时候为了完成一个常用的功能需要执行许多条语句,每次都在客户端里一条一条的去输入这么多语句是很烦的。设计MySQL的大叔非常贴心的给我们提供了一种称之为存储程序的东东,这个所谓的存储程序可以封装一些语句,然后给用户提供一种简单的方式来调用这个存储程序,从而间接地执行这些语句。根据调用方式的不同,我们可以把存储程序分为存储例程、触发器和事件这几种类型。其中,存储例程又可以被细分为存储函数和存储过程。我们画个图表示一下:

image_1c84n8aqm1snl1iql9eb1tpa6v19.png-29.4kB

别看出现了很多陌生的概念,别怕,我们后边会各个击破的。不过在正式介绍存储程序之前,我们需要先了解一下MySQL中的自定义变量和语句结束分隔符的概念。

自定义变量简介

生活中我们经常会遇到一些固定不变的值,比如数字100、字符串'你好呀',我们把这些值固定不变的东东称之为常量。可是有时候为了方便,我们会使用某一个符号来代表一个值,它代表的值是可以变化的。比方说我们规定符号a代表数字1,之后我们又可以让符号a代表数字2,我们把这种值可以发生变化的东东称之为变量,其中符号a就称为这个变量的变量名。在MySQL中,我们可以通过SET语句来自定义一些我们自己的变量,比方说这样:

如果我们之后想查看这个变量的值的话,使用SELECT语句就好了,不过仍然需要在变量名称前加一个@符号:

我们还可以将某个查询的结果赋值给一个变量,前提是这个查询的结果只有一个值:

语句结束分隔符

在MySQL客户端的交互界面处,当我们完成键盘输入并按下回车键时,MySQL客户端会检测我们输入的内容中是否包含;、g或者G这三个符号之一,如果有的话,会把我们输入的内容发送到服务器。这样一来,如果我们想一次性给服务器发送多条的话,就需要把这些语句写到一行中,比如这样:

我们也可以将语句结束分隔符重新定义为$以外的其他包含单个或多个字符的字符串,比方说这样: