/*进阶17 变量
系统变量:
全局变量:
会话变量: 自定义变量:
用户变量:
局部变量: */
/*
#一: 系统变量
#说明: 变量由系统提供,不是用户定义的,属于服务器层面
#使用的语法 #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 ;【如果不写,默认是这个】
*/
/*
#2>> 会话变量
作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效 #① : 查看所有的会话变量
SHOW VARIABLES; #547行
SHOW SESSION VARIABLES; #547行 #② : 查看部分的会话变量
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%'; */
/*
#2>> 会话变量
作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效 对比用户变量和局部变量:
作用域 定义和使用的位置 语法
用户变量: 当前会话 会话中的任何地方 必须加@符号,不用限定类型 局部变量: begin end中 只能在begin end中,且 一般不用加@符号,需要限定类型
为第一句话 */
#1》 全局变量
#① 查看所有的全局变量
SHOW GLOBAL VARIABLES;
#② 查看部分的全局变量
SHOW GLOBAL VARIABLES LIKE 'character%';
#③ 查看指定的全局变量
SELECT @@global.autocommit; #1 #④: 为某个指定的全局变量赋值
SET @@global.autocommit=0; #0 #2>> 会话变量
/*
作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效
*/ #① : 查看所有的会话变量
SHOW VARIABLES; #547行
SHOW SESSION VARIABLES; #547行 #② : 查看部分的会话变量
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%'; #③ : 查看指定的某个会话变量
#select @@tx_isolation; #不支持
#select @@session.tx_isolation; #不支持查询隔离级别 #④ : 为某个会话变量赋值
#set @@tx_isolation='read-uncommitted'; #不支持更改隔离级别
#SET session @@tx_isolation='read-uncommitted'; #二: 自定义变量
/*
说明: 变量是用户自己进行定义的,不是由系统提供的;
使用步骤: 声明/赋值/使用(查看/比较/运算等..) */ #1.用户变量
#作用域:针对当前会话(连接)有效,同于会话变量的作用域
#赋值的操作符: =或:=
#① 声明并初始化
SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值; #方式二:通过select into
SELECT 字段 INTO 变量名
FROM 表;
#输出结果
SELECT @num; #案例:
SET @name='john';
SET @name=100;
#声明并初始化
SELECT COUNT(*) INTO @num
FROM employees; SELECT @num;
#----------------------------- #2.局部变量 ------没办法实践!!实践错!!!!
/*
作用域:仅仅作用在定义它的begin end中有效
应用在begin end中的第一句话 */
#① 声明
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
#① 赋值
SET 局部变量名=值;
SET 局部变量名:=值;
SELECT @用户变量名:=值;
#方式二:通过select into
SELECT 字段 INTO 局部变量名
FROM 表;
#③ 使用
SELECT 局部变量名;
# 案例--------------- #1.使用用户变量实现加法
SET @m=1;
SET @n=2;
SET @sum=@m+@n;
SELECT @sum; #2.使用局部变量实现加法

SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量的更多相关文章

  1. eclipse自动生成变量名声明(按方法返回值为本地变量赋值)

    eclipse自动生成变量名声明(按方法返回值为本地变量赋值) ctrl+2+L 这个快捷键可自动补全代码,极大提升编码效率! 注:ctrl和2同时按完以后释放,再快速按L.不能同时按! 比如写这句代 ...

  2. C++ 变量的声明与定义的区别

    变量声明和定义的区别 我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点 ...

  3. C++头文件保护符和变量的声明定义

    1.#ifndef #define #endif头文件保护符 在编译的过程中,每个.cpp文件被看成一个单独的文件来编译成单独的编译单元,#ifndef 保证类的头文件在同一个.cpp文件里被多次引用 ...

  4. C#中对于变量的声明和初始化

    C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待. ...

  5. 变量的声明和定义以及extern的用法

    变量的声明和定义以及extern的用法                                          变量的声明不同于变量的定义,这一点往往容易让人混淆. l         变量 ...

  6. MYSQL的用户变量(@)和系统变量(@@)

    9.3. 用户变量 可以先在用户变量中保存值然后在以后引用它:这样可以将值从一个语句传递到另一个语句.用户变量与连接有关.也就是说,一个客户端定义的变量不能被其它客户端看到或使用.当客户端退出时,该客 ...

  7. 走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器

    一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 ) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SE ...

  8. pl sql 变量的声明和赋值

    链接地址:http://www.cnblogs.com/zhengcheng/p/4168670.html 一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的 ...

  9. 转:SQL进阶之变量、事务、存储过程与触发器

    一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 DECLARE @name varchar(20) DECLARE @id int (2)为变量赋值 SET ...

随机推荐

  1. docker 使用阿里云镜像加速

    1.登录阿里云 2.进入控制台 3.搜索 “容器镜像服务” 下拉点击 “镜像加速器” 复制自己的私有地址 进入自己的docker宿主机器(替换下面的地址为自己的私有地址) 修改daemon配置文件/e ...

  2. linux-rsync-同步本地文件夹

    linux-rsync-同步本地文件夹 1.安装rsync: yum list rsync yum install rsync 3.使用rsync命令进行同步 rsync -av 源目录 目标目录

  3. kafka原理分析

    #kafka为什么有高吞吐量 1 由于接收数据时可以设置request.required.acks参数,一般设定为1或者0,即生产者发送消息0代表不关心kafka是否接收成功,也就是关闭ack:1代表 ...

  4. [转帖]CentOS 7 安装 GlusterFS

    CentOS 7 安装 GlusterFS https://www.cnblogs.com/jicki/p/5801712.html 改天测试一下 我一直没有搞这一块呢.   CentOS 7 Glu ...

  5. Linux下查看压缩文件内容的 10 种方法

    Linux下查看压缩文件内容的 10 种方法 通常来说,我们查看归档或压缩文件的内容,需要先进行解压缩,然后再查看,比较麻烦.今天给大家介绍 10 不同方法,能够让你轻松地在未解压缩的情况下查看归档或 ...

  6. 通过减少 IO 实现性能的优化

    原始地址见 这里 本文是工作中一点点简单的思考,不能保证是完全正确的,可能也仅仅是适用于部分场景. 场景 1:获取用户关注的好友列表中,每个好友的名字.头像等信息. 在很多公司中,不同的服务是由不同的 ...

  7. (三)Spring Boot 官网文档学习之默认配置

    文章目录 继承 `spring-boot-starter-parent` 覆盖默认配置 启动器 原文地址:https://docs.spring.io/spring-boot/docs/2.1.3.R ...

  8. php中array_replace,array_splice和str_replace三个函数相互比较

    php中有一些功能相似或者是名称相似的函数,比如array_replace,array_splice和str_replace这三个函数,从名称来看前两个操作数组的,后一个操作字符串的. array_r ...

  9. C++枚举类型教案

    一.枚举类型的应用场景 只需要将需要的变量值一一列举出来,便构成一个枚举类型. 二.枚举类型的定义 ·定义方式: enum 枚举类型名字{枚举常量表}: ·关键字enum:说明接下来定义的是一个枚举类 ...

  10. git 修改注释

    原文:https://www.jianshu.com/p/098d85a58bf1 修改最后一条注释: git commit --amend 如果已经推送到远程,强制push到远程仓库: git pu ...