题记部分
一、什么是存储过程
存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用。
存储过程的特点:① 封装、复用;② 可以接收参数,也可以返回数据;③ 减少网络交互,效率提升。
二、存储过程的CURD
(1)存储过程创建语句语法结构
CREATE PROCEDURE 存储过程名称([ 参数列表 ])
BEGIN
-- SQL语句
END;
在MySQL的命令行,创建存储过程,SQL语句中有分号,则MySQL将会在分号结束。
分号之前的不符合存储过程的语法结构,存储过程会创建失败。在创建存储过程之前使用delimiter $$
设置结束符
delimiter $$
CREATE PROCEDURE 存储过程名称([ 参数列表 ])
BEGIN
-- SQL语句
END$$;
恢复结束符:delimiter ;
(2)调用存储过程:CALL 存储过程名称([参数])
(3)查看存储过程
-- 方式一:查询指定数据库的存储过程及状态信息(harley_test是一个数据库)
select * from information_schema.routines where routine_schema='harley_test';
-- 查询某个存储过程的定义
show create procedure p1;
(4)删除存储过程:drop procedure [if exists] 存储过程名称;
三、变量
3.1、系统变量
系统变量是MySQL服务器提供的,不是用户自定义的,属于服务器层面。分为全局变量(GLOBAL)、会话变量(SESSION)
(1)查看系统变量
-- 查看所有系统变量
show [ session|global ] variables;
-- 可以通过like模糊匹配方式查找变量
show [ session|global ] variables lke '......';
-- 查看指定变量的值
select @@[ session|global ] 系统变量名;
(2)设置系统变量
set [ session|global ] 系统变量名 = 值;
set @@[ session|global ] 系统变量名 = 值;
如果没有指定session/gloabl,默认是session(会话变量),在mysql服务重启之后,设置的全局参数会失效,要设置永久参数,可在/etc/my.cnf
中配置。
3.2、用户自定义变量
(1)赋值(推荐使用:=
赋值。=
不仅是赋值运算符,还是比较运算符。)
-- 变量: 用户变量
-- 赋值
set @myname = 'harley';
set @myage := 26;
set @mygender := '男',@myhobby := 'YarnLin';
(2)使用
select @myname,@myage,@mygender,@myhobby;
— 业精于勤荒于嬉,行成于思毁于随 —
标签:存储,变量,--,08,global,session,MySQL,过程 From: https://www.cnblogs.com/houhuilinblogs/p/18217387