一、变量

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

说明:由系统提供,属于服务器层面。如果是全局级别,则需要加 global,如果是会话级别,则需加 session,如果不写,则默认 session。全局变量不能跨重启。会话变量仅仅针对当前变量有效

●查看所有的系统变量

show global | 【session】 variables;

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

show global | 【session】 variable like '%char%';

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

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

●为某个系统变量赋值

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

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

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

使用步骤:

声明

赋值

使用(查看、比较、运算)

●用户变量:可以应用在任何地方,begin end 里面或 begin end 外面。

声明并初始化

方式一:

set @用户变量名 = 值;

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

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

方式二:通过 select into

select 字段 into @变量名

from 表;

查看用户变量值

select @用户变量名;

●局部变量:只能应用在 begin end 中第一句话。

声明

declare 变量名 类型;

declare 变量名 类型 default 值;

赋值

方式一:

set 局部变量名 = 值;

或 set 局部变量名: = 值;

或 select @局部变量名: = 值;

方式二:通过 select into

select 字段 into 局部变量名

from 表;

使用

select 局部变量名;

二、存储过程和函数

类似于java中的方法。

1.存储过程

含义:一组预先编号的SQL语句的集合。减少了编译次数和数据库服务器的连接次数。

●创建语法

如果存储过程体仅仅只有一句话,begin end 可以省略。存储过程体中每条语句结尾都必须加分号。

create procedure 存储过程名(参数列表)

begin

存储过程体()

【delimiter 结束标记】 -- 存储过程的结尾可以使用 delimiter 重新设置。

end 结束标记【$】

参数模式:

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

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

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

●调用语法

call 存储过程名(实参列表) 结束标记【$】;

使用之后查看表时:select *from 表【$】;

案例:

创建带 in 模式的存储过程:

创建带 out 模式的存储过程:

创建带 inout 模式的存储过程:

2.删除存储过程

drop procedure 存储过程名; --一次只能删除一个

3.查看存储过程的信息

show create procedure 存储过程名;

●其他三个案例,供参考

三、函数

存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新。

函数:只能有1个返回,适合做处理数据后返回一个结果。

1.创建语法

create function 函数名(参数列表) returns 返回类型

begin

函数体()

end

注意:

1.参数列表包含两部分:参数名、参数类型

2.函数体:肯定会有return语句, 如果没有会报错。如果return语句没有放在函数体的最后也不报错,但不建议

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

4.使用delimiter语句设置结束标记

2.调用函数

select 函数名(参数列表);

案例:

无参数有返回值

有参数有返回值

3.查看函数

show create function 函数名;

4.删除函数

drop function 函数名;

●其他案例

mysql 存储过程 sql变量_SQL基础-变量 存储过程和函数相关推荐

  1. mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)

    jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果.以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在s ...

  2. mysql基本sql语句大全(基础用语篇)

    mysql基本sql语句大全(基础用语篇). 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明 ...

  3. sql 存储过程 并发测试_SQL单元测试模拟存储过程

    sql 存储过程 并发测试 In this SQL Unit testing article, we will continue our journey with SQL unit testing. ...

  4. sql 游标_SQL基础丨游标

    游标 游标是一个重要的概念,提供了一种灵活的操作方式,可以从数据结果集中每次提取一条数据记录进行操作. 在SQL中,游标是一种临时的数据库对象,可以指向存储在数据库中的数据行指针. 示例 -查询her ...

  5. mysql 触发器 sql日志_sql update 触发器 可获得被update的行的信息

    SQL Server 2005 学习笔记之触发器简介[转] 触发器实际上就是一种特殊类型的存储过程,其特殊性表现在:它是在执行某些特定的T-SQL语句时自动的. 11.1 触发器简介 触发器实际上就是 ...

  6. pb 执行存储过程带参数_SQL高级知识——存储过程

    存储过程的定义 存储过程其实就是已预编译为可执行过程的一个或多个SQL语句. 通过调用和传递参数即可完成该存储过程的功能. 创建存储过程语法 CREATE PROC | PROCEDURE proce ...

  7. python函数里面引用外部变量_Python基础 变量进阶

    目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...

  8. python定义变量_Python基础 变量的基本使用

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  9. 介绍一下mysql的存储过程和搜索引擎_MySQL基础(四)—存储过程和存储引擎

    上一篇 MySQL基础(三)-函数.自定义函数 这一篇是对存储过程和存储引擎的笔记,其中操作的数据库在上一篇文章中有代码,可以去看一下. 1.存储过程 存储过程是SQL语句和控制语句的预编译集合,以一 ...

最新文章

  1. 自动驾驶有量子飞跃式改进,马斯克称年内实现L5级别自动驾驶?
  2. 【转载】防范SQL注入式攻击
  3. 【PAT乙级】1013 数素数 (20 分)
  4. 廊坊学院报名计算机二级,2021上半年廊坊市计算机二级报名时间|网上报名入口【1月6日开通】...
  5. [转载]详细解说STL排序(sort)------这篇博文在一道题上救了我o_0
  6. problem about can't trigger exit-command in CR
  7. FPGA基础之LUT详解
  8. 查询类网站或成站长淘宝客新金矿
  9. Linux系统管理初步(六)设置计划任务
  10. Hdu-1358Period(KMP算法之next数组的应用)
  11. ZipArchive
  12. Java 集合练习题
  13. webService接口调用
  14. 服务器扩容申请文档,服务器内存扩容的申请
  15. [iOS]寻找superView
  16. 【转】业界主流单片机剖析
  17. 折腾不止的追梦人--个人公众号
  18. oenwrt 进不了bios_J1900在openwrt不能正常重启的BIOS选项说明
  19. python边缘坐标提取_python-从Shapely中的多边形中提取点/坐标
  20. 想要健康, 先了解BMI与体脂肪的关係

热门文章

  1. ORA-12899: value too large for column (actual: 27, maximum: 20)错误解决
  2. 创建设计模式 - 原型设计模式
  3. 爬虫使用urllib库报错urllib.error.URLError: 「urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate veri
  4. linux下安装mysql数据库
  5. 【服务端渲染】NuxtJs 综合案例
  6. C#LeetCode刷题之#58-最后一个单词的长度(Length of Last Word)
  7. C#LeetCode刷题之#125-验证回文串(Valid Palindrome)
  8. 面向对象 solid_用简单的英语解释面向对象程序设计的SOLID原理
  9. 标星7000+,这个 Python 艺术二维码生成器厉害了!
  10. 将多个Celery定时任务添加到Systemd