Mysql变量和存储函数

变量分类:

             系统变量:

                           全局变量

                            会话变量

              自定义变量:

                             用户变量

                             局部变量

 

系统变量

说明:变量由系统提供不是用户定义,属于服务器层面

使用语法:

1.查看所有系统变量

SHOW global 【session】variables

2.查看满足条件的部分系统变量

show global 【session】variables like ‘ %char%’

3.查看指定的某个系统变量的值

select @@global 【session】.系统变量名

4.为某个系统变量赋值

方式一:

set global 【session】系统变量名=值

方式二:

set @@global 【session】.系统变量名=值

注意如果是全局级别,则需要加global,如果是会话级别,需要加session,如果不写,则默认session

 

全局变量的作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)

有效,但不能跨重启(重新启动服务器会恢复默认,除非修改配置文件,但不做  )

 

会话变量:

作用域:仅仅针对当前(连接)有效

show variables

show session variables

 

查看部分会话变量

show variables like ‘%char%

show session variables like “%cahr%”’

 

查看指定的会话变量

slect @@tx_isolation

select @@session.tx_isolation

 

为某个会话变量赋值

方式1:

set @@session.tx_isolstion='read-uncommitted

方式2:

set session tx_isolation='read-committed''

 

二 自定义变量

说明:变量是用户自定义的,不是由系统的

使用步骤:

1声明

2赋值

3使用(查看 比较 运算等)

 

1 用户变量

作用域:针对当前会话有效,同于会话变量作用域

应用在任何地方,也就是begin end里面或begin end外面 

赋值操作符:=或:=

 

声明初始化

set @用户变量=值;或

set @用户变量名:=值;或

select @用户变量名:=值;

 

赋值(更新用户变量的值)

方式1:通过set或select

 set @用户变量=值;或

set @用户变量名:=值;或

select @用户变量名:=值;

方式2:

select 字段 into 变量名 from 表;

 

使用(查看用户变量名)

select @用户变量名;

 

实例:

set @name=‘join’

set @name=100;

 

select count(*)into @count from employees

slect @count

 

局部变量

作用域:仅仅在定义它的begin end中有效

应用在begin end中的第一句话

 

声明

declare 变量名 类型;

declare 变量名 类型 default 值;

 

赋值

方式1:通过set或select

set 局部变量名=值;或

set  局部变量名:=值;或

select @局部变量名:=值;

方式2:

select 字段 into 局部变量名 from 表;

 

使用

select 局部变量名;

 

 

存储过程和函数

存储过程和函数,类似于java中的方法

好处:

1.提高代码的重用性

2.简化操作

3.

存储过程

含义:一组预先编译好的SQL语句的集合,理解成批处理语句

1.提高代码的重用性

2.简化操作

3.减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

 

一 创建语法

CREATE PROCEDURE 存储过程名(参数列表)

BEGIN

           存储过程体(一组合法的SQL语句)

END

注意:

1.参数列表包含三部分

参数模式 参数名 参数类型

例子:

IN stuname varchar(20)

参数模式:

IN:该参数可以作为输入,也就是该参数需要调用方传入值

OUT:该参数可以作为输出,也就是该参数可以作为返回值

INOUT:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值

2 如果存储过程体仅仅只有一句话,BEGIN END可以省略

存储过程体中的每条SQL语句的结尾必须加分号

存储过程的结尾可以使用DELIMITER重新设置

语法:

DELIMITEER 结束标记

例子:

DELIMITER $

 

二调用语法

CALL 存储过程名(实参列表);

2.创建带in模式参数的存储过程

 

 3.创建带OUT模式的存储过程

 

 4.创建带inout模式存储过程

 

二存储过程的删除

语法:drop procedure 存储过程名

drop procedure p1,p2;

三 查看存储过程的信息

desc这种是错的

show cerate procedure 存储过程名;

 

 

 

案例讲解P164

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值