zoukankan      html  css  js  c++  java
  • MySQL_基础_变量

    变量

    分类
        系统变量:
            全局变量
            会话变量
    
        自定义变量:
            用户变量
            局部变量
    
    说明
        系统变量:
            说明:变量由系统定义,不是用户定义,属于服务器层面
            注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别
    
        自定义变量:
            说明:变量由用户自定义,而不是系统提供的
            使用步骤:
                1、声明
                2、赋值
                3、使用(查看、比较、运算等)

    系统变量

    全局变量
    作用域:针对于所有会话(连接)有效,但不能跨重启
    
    1、查看所有全局变量
    SHOW GLOBAL VARIABLES;
    
    2、查看满足条件的部分系统变量
    SHOW GLOBAL VARIABLES LIKE '%char%';
    
    3、查看指定的系统变量的值
    SELECT @@global.autocommit;
    
    4、为某个系统变量赋值
    SET @@global.autocommit=0;
    SET GLOBAL autocommit=0;
    
    
    会话变量
    作用域:针对于当前会话(连接)有效
    
    1、查看所有会话变量
    SHOW [SESSION] VARIABLES;
    
    2、查看满足条件的部分会话变量
    SHOW [SESSION] VARIABLES LIKE '%char%';
    
    3、查看指定的会话变量的值
    SELECT @@[session.]autocommit;
    
    4、为某个会话变量赋值
    SET @@[session.]autocommit=0;
    SET [SESSION] autocommit=0;

    自定义变量

    用户变量
    作用域:针对于当前会话(连接)有效,作用域同于会话变量
    
    1、声明并初始化
    SET @变量名=值;
    SET @变量名:=值;
    SELECT @变量名:=值;
    
    2、赋值(更新变量的值)
    方式一:
        SET @变量名=值;
        SET @变量名:=值;
        SELECT @变量名:=值;
    方式二:
        SELECT 字段 INTO @变量名 FROM 表;
    
    3、使用(查看变量的值)
    SELECT @变量名;
    
    
    局部变量
    作用域:仅仅在定义它的begin end块中有效,应用在 begin end中的第一句话
    
    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;
    
        # 局部变量
        DECLARE m INT DEFAULT 1;
        DECLARE n INT DEFAULT 1;
        DECLARE sum INT;
        SET sum=m+n;
        SELECT sum;
    
    区别
                作用域                定义位置                语法
        用户变量    当前会话             会话的任何地方           加@符号, 不用指定类型
        局部变量    定义它的BEGIN END中     BEGIN END的第一句话    不加@, 需要指定类型
  • 相关阅读:
    BZOJ 1529 [POI2005]ska Piggy banks:并查集
    BZOJ 1370 [Baltic2003]Gang团伙:并查集【虚点】
    BZOJ 3624 [Apio2008]免费道路:并查集 + 生成树 + 贪心【恰有k条特殊路径】
    BZOJ 1660 [Usaco2006 Nov]Bad Hair Day 乱发节:单调栈
    BZOJ 2019 [Usaco2009 Nov]找工作:spfa【最长路】【判正环】
    BZOJ 1638 [Usaco2007 Mar]Cow Traffic 奶牛交通:记忆化搜索【图中边的经过次数】
    BZOJ 1641 [Usaco2007 Nov]Cow Hurdles 奶牛跨栏:新版floyd【路径上最大边最小】
    BZOJ 1673 [Usaco2005 Dec]Scales 天平:dfs 启发式搜索 A*搜索
    POJ2226-Muddy Fields-二分图*
    POJ2186-Tarjan-kosaraju-缩点
  • 原文地址:https://www.cnblogs.com/Small-music/p/9324769.html
Copyright © 2011-2022 走看看