mysql 변수 소개
2862 단어 mysql
1. 국부 변수.
국부 변수는 일반적으로 sql 문장 블록에 사용됩니다. 예를 들어 저장 프로세스의begin/end입니다.그 작용역은 이 문장 블록에만 한정되며, 이 문장 블록이 실행된 후 국부 변수는 사라집니다.국부 변수는 일반적으로declare로 설명하고default로 기본값을 설명할 수 있습니다.
예를 들어, 저장 프로세스 중에 로컬 변수를 정의합니다.
drop procedure if exists add;
create procedure add
(
in a int,
in b int
)
begin
declare c int default 0;
set c = a + b;
select c as c;
end;
상기 저장 과정 중 정의된 변수 c는 국부 변수이다
2. 사용자 변수.
사용자 변수의 작용역은 국부 변수보다 넓다.사용자 변수는 현재 전체 연결에 적용될 수 있지만 현재 연결이 끊어지면 정의된 사용자 변수가 사라집니다.사용자 변수는 다음과 같이 정의됩니다.
`@ `
사용자 변수에 값을 부여하는 방법은 두 가지가 있습니다.하나는 '=' 번호를 직접 사용하고 다른 하나는 '=' 번호를 사용합니다. set 명령을 사용하여 사용자 변수에 값을 부여할 때 두 가지 방식을 모두 사용할 수 있으며, select 문장을 사용하여 사용자 변수에 값을 부여할 때
:=
방식만 사용할 수 있습니다. 왜냐하면 select 문장에서 =
번호는 비교 조작부호로 간주되기 때문입니다.예제 절차는 다음과 같습니다.
drop procedure if exists math;
create procedure math
(
in a int,
in b int
)
begin
set @var1 = 1;
set @var2 = 2;
select @sum:=(a + b) as sum, @dif:=(a - b) as dif;
end;
mysql> call math(3, 4);
+——+——+ | sum | dif | +——+——+ | 7 | -1 | +——+——+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> select @var1; //var1
+——-+ | @var1 | +——-+ | 1 | +——-+ 1 row in set (0.00 sec)
mysql> select @var2; //var2
+——-+ | @var2 | +——-+ | 2 | +——-+ 1 row in set (0.00 sec)
3. 세션 변수
서버는 연결된 클라이언트마다 일련의 세션 변수를 유지합니다.클라이언트가 연결될 때 해당 전역 변수의 현재 값을 사용하여 클라이언트의 세션 변수를 초기화합니다.세션 변수를 설정하는 데는 특별한 권한이 필요하지 않지만 클라이언트는 자신의 세션 변수만 변경할 수 있고 다른 클라이언트의 세션 변수는 변경할 수 없습니다.세션 변수는 사용자 변수와 마찬가지로 현재 연결에만 적용됩니다.현재 연결이 끊겼을 때 설정된 모든 세션 변수가 효력을 상실합니다.세션 변수를 설정하는 방법은 다음과 같습니다.
set session var_name = value;
set @@session.var_name = value;
set var_name = value;
세션 변수를 보는 방법에는 다음 세 가지가 있습니다.
select @@var_name;
select @@session.var_name;
show session variables like "%var%";
mysql> show session variables;
4. 글로벌 변수
전역 변수는 서버 전체 작업에 영향을 줍니다.서버가 시작되면 모든 글로벌 변수가 기본값으로 초기화됩니다.이러한 기본값은 옵션 파일이나 명령줄에 지정된 옵션을 변경할 수 있습니다.글로벌 변수를 변경하려면 SUPER 권한이 있어야 합니다.전역 변수는 서버의 전체 생명주기에 작용하지만, 다시 시작할 수 없습니다.다시 시작하면 모든 설정의 전역 변수가 효력을 상실합니다.전역 변수를 다시 시작한 후에 계속 적용하려면 해당하는 설정 파일을 변경해야 합니다.
글로벌 변수를 설정하려면 다음 두 가지 방법이 있습니다.
set global var_name = value; // : global 。 ,set GLOBAL、SESSION LOCAL, SESSION
set @@global.var_name = value; //
글로벌 변수를 보려면 다음 두 가지 방법이 있습니다.
select @@global.var_name;
show global variables like "%var%";
mysql> show global variables;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.