zoukankan      html  css  js  c++  java
  • MySQL数据库8(二十二)变量

    变量

    Mysql本质是一种编程语言,需要很多变量来保存数据。Mysql中有很多的属性控制都是通过mysql中固有的变量来实现的。

    系统变量

    系统内部定义的变量,系统变量针对所有用户(mysql客户端)有效

    查看系统所有变量

    show variables;

     

    Mysql允许用户使用select查询变量的数据值(系统变量)

    基本语法:select @@变量名;

     

    修改系统变量

    分为两种修改方式:

    1、局部修改(会话级别):只针对当前自己客户端当次连接有效

    基本语法:set 变量名 = 新值;

     

    2、全局修改:针对所有客户端,“所有时刻”都有效

    基本语法:set global 变量名 = 值;或者 set @@global.变量名 = 值;

    全局修改后,所有连接的客户端并没有发现改变?全局修改只针对新客户端生效(正在连着的无效)

    注意:如果想要本次连接对应的变量修改有效,那么不能使用全局修改,只能使用会话级别修(set 变量名 = 值;)

    会话变量

    会话变量也称之为用户变量,会话变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效。

    定义用户变量:set @变量名 = 值;

     

    在mysql只因为没有比较符号 ==,所以使用=代替比较符号,有时候在赋值的时候,会报错;mysql为了避免系统分不清是赋值还是比较:特定增加一个变量的赋值符号: :=

    赋值:set @变量名 := 值;

     

    Mysql是专门存储数据的:允许将数据从表中取出存储到变量中:查询得到的数据只能是一行数据(一个变量对应一个字段值):mysql中没有数组

    1、赋值且查看赋值过程:select @变量1: =字段1,@变量2 : =  字段2 from 数据表 where条件;

    错误语法:就是因为使用=,系统会当作比较符号来处理

     

    正确使用: :=

     

    2、只赋值不看过程:select 字段1,字段2…from 数据源 where 条件 into @变量1,@变量2…;

     

    局部变量

    作用范围在begin到end语句块之间。在该语句块里设置的变量,declare语句专门用于定义局部变量。

    1、局部变量是使用declare关键字声明

    2、局部变量declare语句出现的位置一定是在begin和end之间(begin end是在大型语句块中使用:函数/存储过程/触发器)

    3、声明语法:declare 变量名 数据类型[属性];

                  declare res int default 0;

    declare res int = 0;

  • 相关阅读:
    【C语言程序设计】C语言渔夫打鱼晒网问题!
    【C语言】很少人真正了解 和 有什么区别!
    【C语言程序设计】C语言求亲密数!
    新手程序员该如何打造自己的个人品牌!谨记,共勉!
    【C语言程序设计】利用数组解决线性代数中的矩阵转置问题!
    【程序员段子】程序员太苦逼了,苍天啊!请给我一次重新择业的机会吧!
    27. Remove Element
    Leetcode Scratching Recorder
    Activity---弹出右侧窗口
    ViewPageIndicator--仿网易的使用
  • 原文地址:https://www.cnblogs.com/sun-yanglu/p/9612888.html
Copyright © 2011-2022 走看看