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的第一句话 一般不用加@,需要指定类型
  • 相关阅读:
    使用PrintDocument进行打印
    【转】封装原生JS实现Ajax
    休眠到指定时分秒
    [原创]vscode初体验
    反编译网站
    命令行工具aspnet_regiis.exe实现加密和解密web.config
    Sqlserver内置函数实现MD5
    [转]如何循序渐进向dotnet架构师发展
    [转]高级系统架构师培训笔记
    理解RESTful
  • 原文地址:https://www.cnblogs.com/niujifei/p/14986726.html
Copyright © 2011-2022 走看看