码迷,mamicode.com
首页 > 其他好文 > 详细

2020/8/11

时间:2020-08-12 14:04:56      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:就是   while   建议   符号   步骤   call   函数返回   mic   char   

变量:

系统变量:全局变量、会话变量

自定义变量:用户变量、局部变量

一、系统变量

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

语法

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

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

 

会话变量作用域:仅仅针对于当前会话变量

 

二、自定义变量

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

使用步骤:声明、赋值、使用(查看、比较、运算等)

1、用户变量

作用域:针对于当前会话(连接)有效,同于会话变量的作用域

赋值的操作符:=或:=

①声明并初始化

SET @用户变量名=值;或

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

SELECT @用户变量名:=值;

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

方式一: 通过SET或SELECT

SET @用户变量名=值;或

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

SELECT @用户变量名:=值;

方式二;通过SELECT INTO

SELECT 字段 INTO 变量名

FROM 表

③使用(查看用户变量名)

SELECT @用户变量名

 

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

 

2、局部变量

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

应用在begin end中,第一句话

①声明

DECLARE 变量名 类型;

DECLARE 变量名 类型 DEFAULT 值;

②赋值

方式一: 通过SET或SELECT

SET 局部变量名=值;或

SET 局部变量名:=值;或

SELECT @局部变量名:=值;

方式二;通过SELECT INTO

SELECT 字段 INTO 局部变量名

FROM 表

③使用(查看用户变量名)

SELECT 局部变量名

 

  作用域 定义和使用的地方 语法
用户变量 当前会话 会话中的任何地方 必须加@符号,不用限定类型
局部变量 begin end中 只能在begin end中,且为第一句话 一般不用加@符号,需要限定类型

 

存储过程和函数

类似于java中的方法

好处:

1、提供代码的重用性

2、简化操作

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

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

 

一、创建语法

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

BEGIN

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

END

注意:

1、参数列表包含三部分

参数模式 参数名 参数类型

举例

IN stuname VARCHAR(20)

参数模式:

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

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

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

2、如果存储过程仅仅只有一句话,begin end 可以省略

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

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

语法:

DELIMITER 结束标记

 

二、调用语法

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

 

案例:

技术图片

 

二、删除存储过程

DROP PROCEDURE 存储过程

三、查看存储过程的信息

SHOE CREATE PROCEDURE 存储过程;

技术图片

 

 

函数与存储过程的区别

存储过程:可以有0个返回,也可以有多个返回

函数:有且仅1个返回,适合做处理数据后返回一个结果

一、创建函数

CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型

BEGIN 

       函数体

END

注意:

1、参数列表 包含两部分:

参数名 参数类型

 

2、函数体:肯定会有return语句,如果没有会报错

如果return语句没有放在函数体的最后也不报错,但不建议

 

return值:

3、函数体中仅有一句话,则可以省略begin end

4、使用delimiter语句设置结束标志

 二、调用语法

SELECT  函数名(参数列表)

技术图片定义局部变量

技术图片

 

三、查看函数

SHOW CREATE FUNCTION myf3;

四、删除函数

DROP FUNCTION myf3;

 

 

技术图片

 

 

流程控制结构

顺序结构:程序从上往下依次执行

分支结构:程序从两条或多条路径中选择一条去执行

循环结构:程序在满足一定条件的基础上,重复执行一段代码

 

一、分支结构

1、if函数

实现简单的双分支

语法:

IF(表达式1,表达式2,表达式3)

执行顺序

如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值

应用:任何地方

2、case结构

情况1:类似于java中的switch语句,一般用于实现等值判断

语法:

CASE 变量|表达式|字段

WHEN 要判断的值 THEN 返回的值1或语句1;

WHEN 要判断的值 THEN 返回的值2或语句2;

...

ELSE 要返回的值n或语句n;

END CASE;

情况2:类似于java中的多重if语句,一般用于实现区间判断

语法:

CASE 

WHEN 判断的条件1 THEN 返回的值1

WHEN 判断的条件2 THEN 返回的值2

...

ELSE 要返回的值n

END

特点:

可以作为表达式,嵌套在其他语句中使用,可以放在任何地方 ,BEGIN EDN 中或外面

可以作为独立的语句去使用,只能放在BEGIN END 中 

 

二、循环结构

分类:while、loop、repeat

循环控制:

iterate类似于continue,继续,结束本次循环,继续下一次

leave类似于break,跳出,结束当前所在循环

1、while

 

技术图片

 

2、loop

技术图片

 

3、repeat

技术图片

 

2020/8/11

标签:就是   while   建议   符号   步骤   call   函数返回   mic   char   

原文地址:https://www.cnblogs.com/xxmzhaogongzuo/p/13485344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!