/*进阶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. Linux如何查看进程、杀死进程、启动进程

    1.查看进程:ps命令 下面的命令还没实践,仅仅供你参考:可以用man ps查看格式,只不过是一个小工具而已! ps a 显示现行终端机下的所有程序,包括其他用户的程序.    ps -A 显示所有程 ...

  2. LeetCode 680. 验证回文字符串 Ⅱ(Valid Palindrome II) 1

    680. 验证回文字符串 Ⅱ 680. Valid Palindrome II 题目描述 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 每日一算法2019/5/4Day 1Le ...

  3. js判断是Android还是iOS

    var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > - ...

  4. git config 介绍

    转载. https://blog.csdn.net/liuxiao723846/article/details/83113317 Git的三个重要配置文件分别是/etc/gitconfig,${HOM ...

  5. C 语言函数手册:涵盖字符测试、字符串操作、内存管理、时间换算、数学计算、文件操作、进程管理、文件权限控制、信号处理、接口处理、环境变量、终端控制

    1. 字符测试函数 函数 说明 isascii() 判断字符是否为ASCII码字符 2. 字符串操作 函数 说明 gcvt() 将浮点型数转换为字符串(四舍五入) index() 查找字符串并返回首次 ...

  6. Python re模块前的正则表达式常用语法小总结

    一.正则表达式: (1).正则表达式是干什么的  正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或 ...

  7. WUSTOJ 1337: Car race game(C)树状数组,离散化

    题目链接:1337: Car race game 参考资料:⑴ Car race game 树状数组 棋煜,⑵ 树状数组,⑶ 离散化 补充资料:⑴ qsort,⑵ 二分查找 Description B ...

  8. ES6语法基本使用

    什么是ES6? ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.Mozilla公司将在这个标准的基础上,推出JavaScript 2. ...

  9. spring整合MQ

    ---恢复内容开始--- 一. 导入依赖 <dependencies> <!-- ActiveMQ客户端完整jar包依赖 --> <dependency> < ...

  10. mouseenter 与 mouseover 区别于选择

    mouseover事件, 箭头在子元素移动会触发冒泡事件,  子元素的鼠标箭头可触父元素方法, 相反,mouseenter事件功能与mouseover类似, 但鼠标进入某个元素不会冒泡触发父元素方法. ...