zoukankan      html  css  js  c++  java
  • 第二节:变量

    一、变量

      1、变量分类

        系统变量:

          全局变量

          会话变量

        自定义变量:

          用户变量

          局部变量

    二、系统变量

      1、概述

        系统变量:变量由系统定义,不是用户定义,属于服务器层面。

        注意:全局变量需要添加 global 关键字,会话变量需要添加 session 关键字,如果不写,默认会话级别。

      2、使用系统变量

        (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,如果不写,则默认 session。

    三、全局变量

      1、概述

        服务器每次启动将会为所有的全局变量赋初始值,针对于所有的会话(连接),但是不能跨重启
        作用域:针对于所有会话(连接)有效,但不能跨重启(如果想要重启生效,需要修改配置文件)

      2、使用

        (1)查看所有全局变量

    SHOW GLOBAL VARIABLES;
    

      

        (2)查看满足条件的部分系统变量

    SHOW GLOBAL VARIABLES LIKE '%char%';
    

      

        (3)查看指定的系统变量的值

    SELECT @@global.autocommit;
    select @@tx_isolation;
    

      

        (4)为某个系统变量赋值

    SET @@global.autocommit=0;
    SET GLOBAL autocommit=0;
    

      

    四、会话变量

      1、概述

        会话变量,仅仅针对于当前当前会话有效,它的作用域也就是当前会话(链接)有效。

      2、使用

        (1)查看所有会话变量

    SHOW SESSION VARIABLES;
    

      

        (2)查看满足条件的部分会话变量

    SHOW SESSION VARIABLES LIKE '%char%';
    

      

        (3)查看指定的会话变量的值

    SELECT @@autocommit;
    SELECT @@session.tx_isolation;
    

      

        (4)为某个会话变量赋值

    SET @@session.tx_isolation='read-uncommitted';
    SET SESSION tx_isolation='read-committed';
    

      

    五、自定义变量

      1、概述

        说明:变量由用户自定义,而不是系统提供的;

      2、使用

        (1)变量的声明

        (2)变量的赋值

        (3)变量的使用(查看、比较、运算等)

    六、用户变量

      1、概述

        作用域:针对于当前会话(连接)有效,作用域同于会话变量,可以应用在任何地方,也就是 begin、end 里面或 begin、end 外面;

      2、使用

        赋值操作符:= 或 :=

        (1)声明并初始化

    SET @变量名=值;
    SET @变量名:=值;
    SELECT @变量名:=值;
    

      

        (2)赋值(更新变量的值)

          方式一:

    SET @变量名=值;
    SET @变量名:=值;
    SELECT @变量名:=值;
    

      

          方式二:

    SELECT 字段 INTO @变量名
    FROM 表;
    

          案例:

    SELECT COUNT(*) INTO @count
    FROM employees;
    SELECT @count;
    

      

        (3)使用(查看变量的值)

    SELECT @用户变量名;
    

      

    七、局部变量

      1、概述

        作用域:仅仅在定义它的begin end块中有效,且应用在 begin end 中的第一句话;

      2、使用

        (1)声明

    DECLARE 变量名 类型;
    DECLARE 变量名 类型 【DEFAULT 值】;
    

      

        (2)赋值(更新变量的值)

          方式一:

    SET 局部变量名=值;
    SET 局部变量名:=值;
    SELECT @局部变量名:=值;
    

      

          方式二:

    SELECT 字段 INTO 局部变量名
    FROM 表;
    

      

        (3)使用(查看变量的值)

    SELECT 局部变量名;
    

      

    八、案例

      1、声明两个用户变量,求和并打印

    SET @m=1;
    SET @n=1;
    SET @sum=@m+@n;
    SELECT @sum;
    

      

      2、声明两个局部变量,求和并打印

    DECLARE m INT DEFAULT 1;
    DECLARE n INT DEFAULT 1;
    DECLARE SUM INT;
    SET SUM=m+n;
    SELECT SUM;
    

      

      3、用户变量和局部变量的对比

      作用域 定义位置 语法
    用户变量 当前会话 会话的任何地方 加@符号,不用指定类型
    局部变量 定义它的BEGIN END中 BEGIN END的第一句话 一般不用加@,需要指定类型
  • 相关阅读:
    CSS中position小解
    position
    mac默认安装postgresql, 如何让postgresql可以远程访问
    The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
    active admin gem error
    psql 无法添加超级用户
    ubuntu 15.04 安装Balsamiq Mockups 3
    Rails html 写public里图片的路径
    rails c 历史命令
    undefined local variable or method `per' for []:ActiveRecord::Relation
  • 原文地址:https://www.cnblogs.com/niujifei/p/14986726.html
Copyright © 2011-2022 走看看