内卷能让一个群体的内部变得异常的精致,但是本质上却完完全全没有任何的进步,并且会导致更多没必要的资源浪费以及带来更加激烈的竞争。它是zbzy社会下劳动力过剩的必然现象。
变量
系统变量
系统提供的变量,属于服务器层面
语法:
1.全局变量
作用域:服务器每次启动时将所有的全局变量赋初始值,针对于所有的会话/链接有效
但不能跨重启(重启后值不会保持,会回到初始化,那么得修改配置文件)
查看所有的系统变量
SHOW GLOBAL VARIABLES;
满足部分条件的系统变量
SHOW GLOBAL VARIABLES LIKE ‘%char%’;
查看指定的全局变量
SELECT @@global.autocommit;
SELECT @@tx_isolation;
为某个指定的全局变量赋值
SET @@global.autocommit=0;
//跨链接有效
2.会话变量
仅仅针对于当前的会话
查看所有的会话变量
SHOW SESSION VARIABLES;
满足部分条件的会话变量
SHOW VARIABLES LIKE ‘%char%’;
SHOW SESSION VARIABLES LIKE ‘%char%’;
查看指定的会话变量
SELECT @@tx_isolation;
SELECT SESSION @@tx_isolation;
为某个指定的会话变量赋值
SET @@tx_isolation=’read-uncommitted’;
SET SESSION tx_isolation=’read-uncommitted’;
3.自定义变量
//变量是用户自定义的,与其他编程语言的使用方法类似
1.用户变量
作用域:针对于当前会话/链接有效,和会话变量的作用域类似
应用在任何地方,必须加@,不需要限定类型
声明并初始化://=或:=
SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;
赋值/更新:
方法1
SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;
测试例:
SET @name=’john’;
SET @name=’100’;
//它是弱类型语言
方法2
SELECT 字段 INTO 变量名 FROM 表;
测试例:
SELECT COUNT(*) INTO @count FROM employees;
2.局部变量
仅仅在定义它的begin end 中的第一句话有效
一般不用加@,需要限定类型
声明:
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
赋值:
方法1
SET 局部变量名=值;
SET 局部变量名:=值;
SELECT @局部变量名:=值;
测试例:
SET name=’john’;
SET name=’100’;
//它是弱类型语言
方法2
SELECT 字段 INTO 局部变量名 FROM 表;
测试例:
SELECT 局部变量名;