• lyt经典版MySQL基础——变量


      1 #变量
      2 /*
      3 系统变量:
      4     全局变量
      5     会话变量
      6     
      7 自定义变量:
      8     用户变量
      9     局部变量
     10 */
     11 
     12 #一、系统变量
     13 /*说明:变量由系统提供,不是用户定义,属于服务器层面
     14 使用的语法:
     15 1、查看所有的系统变量
     16 show global|【session】 variables;
     17 
     18 2、查看满足条件的部分系统变量
     19 show golbal|【session】 variables like '%char%';
     20 
     21 3、查看指定的某个系统变量的值
     22 select @@global|【session】.系统变量名;
     23 
     24 4、为某个系统变量赋值
     25 方式一:
     26 set global|【session】 系统变量名 = 值;
     27 方式二:
     28 set @@global|【session】.系统变量名 = 值;
     29 
     30 注意:
     31 如果是全局级别,则需要加global,如果是会话级别,则需要加session,
     32 如果不写,则默认是session
     33 */
     34 
     35 #1.全局变量
     36 /*
     37 作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,
     38 但是不能跨重启。
     39 */
     40 #(1)查看所有的全局变量
     41 SHOW GLOBAL VARIABLES;
     42 
     43 #(2)查看部分的全局变量
     44 SHOW GLOBAL VARIABLES LIKE '%char%';
     45 
     46 #(3)查看指定的全局变量的值
     47 SELECT @@global.autocommit;
     48 SELECT @@transaction_isolation;
     49 
     50 #(4)为某个指定的全局变量赋值
     51 SET @@global.autocommit=0;
     52 
     53 #2.会话变量
     54 /*
     55 作用域:仅仅针对当前会话(连接)有效
     56 */
     57 #(1)查看所有的会话变量
     58 SHOW SESSION VARIABLES;
     59 SHOW VARIABLES;
     60 
     61 #(2)查看部分的会话变量
     62 SHOW VARIABLES LIKE '%char%';
     63 SHOW SESSION VARIABLES LIKE '%char%';
     64 
     65 #(3)查看指定的某个会话变量
     66 SELECT @@transaction_isolation;
     67 SELECT @@session.transaction_isolation;
     68 
     69 #(4)为某个会话变量赋值
     70 #方式一:
     71 SET @@session.transaction_isolation='read-uncommitted';
     72 
     73 #方式二:
     74 SET SESSION transaction_isolation='read-committed';
     75 
     76 #二、自定义变量
     77 /*
     78 说明:变量是用户自定义的,不是由系统的
     79 使用步骤:
     80 声明
     81 赋值
     82 使用(查看、比较、运算等)
     83 */
     84 #1、用户变量
     85 /*
     86 作用域:针对于当前会话(连接)有效,同于会话变量的作用域
     87 应用在任何地方,也就是begin end里面或begin end外面
     88 */
     89 
     90 #赋值的操作符: = 或 :=
     91 #(1)声明并初始化
     92 SET @用户变量名=值; 或
     93 SET @用户变量名:=值; 或
     94 SELECT @用户变量名:=值;
     95 
     96 #(2)赋值(更新用户变量的值)
     97 #方式一:通过set或select
     98 SET @用户变量名=值; 或
     99 SET @用户变量名:=值; 或
    100 SELECT @用户变量名:=值;
    101 #方式二:通过select into
    102     SELECT 字段 INTO @变量名
    103     FROM 表;
    104 
    105 #(3)使用(查看用户变量的值)
    106 SELECT @用户变量名;
    107 
    108 #案例:
    109 #声明并初始化
    110 SET @name='john';
    111 SET @name=100;
    112 SET @count=1;
    113 #赋值
    114 SELECT COUNT(*) INTO @count
    115 FROM employees;
    116 #查看/使用
    117 SELECT @count;
    118 
    119 #2、局部变量
    120 /*
    121 作用域:仅仅在定义它的begin end中有效
    122 应用在 begin end中的第一句话!!!
    123 */
    124 
    125 #(1)声明
    126 DECLARE 变量名 类型;
    127 DECLARE 变量名 类型 DEFAULT 值;
    128 
    129 #(2)赋值
    130 #方式一:通过set或select
    131 SET @用户变量名=值; 或
    132 SET @用户变量名:=值; 或
    133 SELECT @用户变量名:=值;
    134 #方式二:通过select into
    135     SELECT 字段 INTO @变量名
    136     FROM 表;
    137     
    138 #(3)使用
    139 SELECT 局部变量名;
    140 
    141 #对比用户变量和局部变量:
    142 #        作用域        定义和使用的位置            语法
    143 #用户变量    当前会话    会话中的任何地方            必须加@符号,不用限定类型
    144 #局部变量    begin end 中    只能在 begin end 中,且为第一句话    一般不用加@符号,需要限定类型
    145 
    146 #案例:声明两个变量并赋初始值,求和,并打印
    147 #1.用户变量
    148 SET @m=1;
    149 SET @n=2;
    150 SET @sum=@m+@n;
    151 SELECT @sum;
    152 
    153 #2.局部变量
    154 DECLARE m INT DEFAULT 1;
    155 DECLARE n INT DEFAULT 2;
    156 DECLARE SUM INT;
    157 SET SUM=m+n;
    158 SELECT SUM; -- 报错,因为没有放在作用域里
    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    【原创】这道Java基础题真的有坑!我也没想到还有续集。
    【原创】这道Java基础题真的有坑!我求求你,认真思考后再回答。
    【原创】这道面试题我真不知道面试官想要的回答是什么
    【原创】Dubbo加权轮询负载均衡的源码和Bug,了解一下?
    【原创】一文讲透Dubbo负载均衡之最小活跃数算法
    使用环信开发项目遇到错误提示 configure your build for VectorDrawableCompat
    Android开发中使用七牛云存储进行图片上传下载
    Android5.0中Material Design的新特性
    CameraAPI中的 自定义照相功能
    RecyclerView使用技巧(item动画及嵌套高度适配解决方案)
  • 原文地址:https://www.cnblogs.com/yiruliu/p/13406184.html
Copyright © 2020-2023  润新知