SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量
/*进阶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-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量的更多相关文章
- eclipse自动生成变量名声明(按方法返回值为本地变量赋值)
eclipse自动生成变量名声明(按方法返回值为本地变量赋值) ctrl+2+L 这个快捷键可自动补全代码,极大提升编码效率! 注:ctrl和2同时按完以后释放,再快速按L.不能同时按! 比如写这句代 ...
- C++ 变量的声明与定义的区别
变量声明和定义的区别 我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点 ...
- C++头文件保护符和变量的声明定义
1.#ifndef #define #endif头文件保护符 在编译的过程中,每个.cpp文件被看成一个单独的文件来编译成单独的编译单元,#ifndef 保证类的头文件在同一个.cpp文件里被多次引用 ...
- C#中对于变量的声明和初始化
C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待. ...
- 变量的声明和定义以及extern的用法
变量的声明和定义以及extern的用法 变量的声明不同于变量的定义,这一点往往容易让人混淆. l 变量 ...
- MYSQL的用户变量(@)和系统变量(@@)
9.3. 用户变量 可以先在用户变量中保存值然后在以后引用它:这样可以将值从一个语句传递到另一个语句.用户变量与连接有关.也就是说,一个客户端定义的变量不能被其它客户端看到或使用.当客户端退出时,该客 ...
- 走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 ) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SE ...
- pl sql 变量的声明和赋值
链接地址:http://www.cnblogs.com/zhengcheng/p/4168670.html 一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的 ...
- 转:SQL进阶之变量、事务、存储过程与触发器
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 DECLARE @name varchar(20) DECLARE @id int (2)为变量赋值 SET ...
随机推荐
- js 常用操作 -- 持续更新
替换数组中某一元素: array.splice(2, 1, '哈哈'); // 2 表示指定数组中2下标元素,1表示要删除的项数,哈哈 是替换后的值 在数组中某元素之前增加元素: array.spli ...
- Echarts 不能百分比显示或显示有问题
1,设折线图宽为100%(如:容器div的class=“RiBarBot”宽为880px),刚初始化时隐藏折线图(或后期刷新.隐藏与显示折线图时),当点击显示折线图时,获取到的宽只有100px,并不是 ...
- 字符串的分隔方法 split()
java中的split()的方法 string.split([separator,[limit]]) 参数 string (必选),要被分解的 String 对象或文字.该对象不会被 split 方法 ...
- tomcat+java+redis环境linux安装
最近要加一个环境测试,自力更生,丰衣足食,记下来下次安装环境速度快点 java jdk-1.80_131 64位 这个jdk 对于初次下载的人要注意,oracel现在不登录不让下载,而注册用户时页面无 ...
- java8 : 流
package day02.com.offcn.test; import java.io.IOException; import java.nio.charset.Charset; import ja ...
- Python20之全局变量和局部变量
一.局部变量和全局变量 局部变量:是指在函数体内定义的变量,作用域只在该函数体内部 全局变量:是指在函数体外定义的变量,作用域是整个代码段 所以在函数体内可以直接访问全局变量而不可以在函数体外访问局部 ...
- nmap使用帮助翻译
Nmap 7.60 ( https://nmap.org )Usage: nmap [扫描类型] [操作] {目标说明}目标说明: 可以识别主机名.IP地址.网络,等等. 例如: scanme.n ...
- OpenCV学习笔记3
OpenCV学习笔记3 图像平滑(低通滤波) 使用低通滤波器可以达到图像模糊的目的.这对与去除噪音很有帮助.其实就是去除图像中的高频成分(比如:噪音,边界).所以边界也会被模糊一点.(当然,也有一些模 ...
- PowerBuilder学习笔记之行删除卡死问题
在数据窗口勾选这两个选项后,在删除行数据时会导致系统直接崩溃退出
- CentOS 7忘记了root密码解决方案
1.启动系统,在选择进入系统的界面按“e”进入编辑页面 2.按向下键,找到以“Linux16”开头的行,在该行的最后面输入“init=/bin/sh” 3.按“ctrl+X”组合键进入单用户模式 4 ...