zoukankan      html  css  js  c++  java
  • MySQL变量

    变量:VARIABLES分类

    系统变量:由系统提供,属于服务器层面

    全局变量:针对整个服务器,打开任何客户端都有效

    会话变量:针对于一个会话或一次连接

    自定义变量:用户自定义

    用户变量:类似java中的全局变量

    局部变量:类似java中的局部变量

    #查看数据库中所有的表
    SHOW TABLES;
    
    #查看当前连接下所有的数据库
    SHOW DATABASE;
    
    #查看表中的列
    SHOW COLUMNS;

    一、系统变量

     声明

    因为不用人定义所以没有申明语法

    可以做的就是赋值、使用

    全局级别+GLOBAL

    会话级别不写,或者+SESSION 

    使用语法:

    1.查看全局变量:GLOBAL

    SHOW GLOBAL VARIABLES;

    2.查看会话变量:SESSION

    SHOW 【SESSION】 VARIABLES;(不写session也是会话变量)

    3.查看满足条件的部分系统变量 模糊查询

    SHOW GLOBAL|SESSION VARIABLES like '条件';

    4.查看指定某个系统变量的值 查看具体的值用SELECT 

    SELECT @@系统变量名;当前是会话变量变量
    SELECT @@GLOBAL.系统变量名;当前是全局变量

    5.为某个系统变量赋值

    方式一:
    set 系统变量名=值;        设置会话级别的变量
    
    set GLOBAL系统变量名=值;  设置全局级别的变量
    
    方式二:
    set @@系统变量名=值;          设置会话级别的变量
    
    SELECT @@GLOBAL.系统变量名=值; 设置会话级别的变量

    #1.全局变量

    #特点:全局变量的值跨连接也依然有效

    作用域:

    1.服务器每次启动,为所有的全局变量赋初始值。

    2.针对所有的会话、连接有效。但不能跨重启(重启后失效)

    如果需要永久使用,就要去修改配置文件。

    使用语法:

    查看所有的全局变量

    SHOW GLOBAL VARIABLES;

    查看部分的全局变量 character字符集

    SHOW GLOBAL VARIABLES LIKE '%char%';

    查看指定的某个全局变量的值 autocommit自动提交

    SELECT @@global.autocommit;#1表示开启

    查看事物隔离级别

    SELECT @@tx_isolation;

    为某个全局变量赋值

    SET @@global.autocommit=1;

     

    #2.会话变量

    特点:每次启动服务器会为每个连接的客户端,提供一组会话变量,并且赋于默认值

    作用域:仅仅对于当前会话(连接)有效。

    查看所有的会话变量

    SHOW VARIABLES;

    查看部分的会话变量 

    SHOW VARIABLES LIKE '%char%';

    查看指定的某个会话变量的值 

    SELECT @@tx_isolation;#事物隔离级别

    为某个会话变量赋值

    #方式一
    SET @@session.tx_isolation='read-uncommitted';#第一隔离级别
    
    SET @@tx_isolation='REPEATABLE-READ';#没有效果
    
    #方式二
    SET SESSION tx_isolation ='read-committed'#第二隔离级别

    二、自定义变量

    特点:用户自定义,不由系统提供

    使用步骤:

    1.声明

    2.赋值

    3.使用(查看、比较、运算)

    #1.用户变量

    作用域:

    针对当前会话(连接)有效,与系统会话变量的作用域相同

    应用在任何地方,也就是begin end 或 它的外面

    声明并初始化

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

    赋值(更新用户变量的值)

    #赋值(更新用户变量的值)
    #方式一:通过set或select
                    SET @用户变量名=值;
                    SET @用户变量名:=值;
                    SELECT @用户变量名:=值;
    #案例:因为是弱类型语言,不写类型声明赋值的时候,类型就为值的类型
    SET @name='jhon';
    SET @name=100;
    
    #方式二:通过select into :要求查询出来的必须是一个值
    SELECT 字段 INTO @变量名
    FROM 表;
    
    #声明并初始化
    SET @count=1;
    
    #将员工表的总个数赋值给count
    SELECT COUNT(*) INTO @count
    FROM employees;
    #查看用户变量的值
    SELECT @count;

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

    SELECT @用户变量名;

    #2.局部变量

    作用域:

    仅仅在定义它的begin end中有效,

    必须放在 begin end 中的第一句话

    声明 必须加类型

    DECLARE 变量名 类型

    声明并初始化:值的类型要与变量的类型一致或兼容

    DECLARE 变量名 类型 DEFAULT 值;

    赋值

    #方式一:通过set或select
                    SET 局部变量名=值;
                    SET 局部变量名:=值;
                    SELECT @局部变量名:=值;
    
    #方式二:通过select into :要求查询出来的必须是一个值
    SELECT 字段 INTO 局部变量名
    FROM 表;

    使用

    SELECT 局部变量名;

    对比用户变量和局部变量

      作用域 定义和使用的位置 语法
    用户变量 当前会话 会话中的任何地方 必须加@符号 不用限定类型
    局部变量 begin end中

    只能在begin end中,

    并且必须是第一句话

    不用@符号,

    除了用select赋值

    需要限定类型

    #案例:声明两个变量并赋初始值 #1.用户变量 SET @m=1;#声明用户变量m值为1 SET @n=2;#声明用户变量n值为2 SET @sum=@m+@n;#声明用户变量sum值为m+n SELECT @sum;#查看用户变量sum的值 #2.局部变量 DECLARE m INT DEFAULT 1; DECLARE m INT DEFAULT 2;报错不能放在begin end外面
  • 相关阅读:
    Javascript对象原型prototype和继承
    Javascript(js)使用function定义构造函数
    phpExcel中文帮助手册
    php curl_init函数用法
    nginx启动,重启,关闭命令
    Nginx配置文件详细说明
    Nginx 简单的负载均衡配置示例
    MySQL数据库的同步配置
    ucenter home 视频增加缩略图
    web分词程序和算法
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12381728.html
Copyright © 2011-2022 走看看