>  기사  >  데이터 베이스  >  mysql의 변수에 대한 자세한 소개

mysql의 변수에 대한 자세한 소개

零下一度
零下一度원래의
2017-05-09 13:30:071239검색

변수 정의

구문은 다음과 같습니다

declare var_name[,...] type [default value];

MYSQL 변수 정의는 저장 프로시저 또는 함수는 Oracle/SQL Server와 달리 내부에 정의됩니다. 이 변수의 범위는 시작...end 블록 내에만 있을 수 있습니다. 변수 정의는 다른 명령문보다 먼저 복합 명령문의 시작 부분에 작성되어야 합니다. 동일한 유형의 여러 변수를 한 번에 선언할 수 있습니다. 기본값을 사용하여 기본값을 할당할 수 있습니다. declare只能用在局部变量定义中。

#举例
declare v_test int default 10;

변수 설정

방법 1

set var_name=expr,[,var_name2=expr ...];

#举例
set v_test=15;

방법 2

select col_name[,...] into var_name[,...] table_expr;

#举例
select sid into @a from test1;

if col_name (예: sid)는 여러 행 값을 반환하고, @a는 결국 마지막 행 값만 반환합니다.

변수 분류

로컬 변수(@ 추가 필요 없음)

로컬 변수는 일반적으로 SQL 문 블록에서 사용됩니다. 예를 들어 저장 프로시저의 시작/끝입니다. 해당 범위는 명령문 블록으로 제한되며 명령문 블록이 실행된 후에는 지역 변수가 사라집니다. 지역 변수는 일반적으로 선언으로 선언되며, 기본값을 나타내는 데 default를 사용할 수 있습니다.

create procedure add(in a int,in b int)
begin
    declare c int default 0;#c定义的局部变量
    set c = a + b;
    select c as c;
end;

사용자 변수(@1개)

사용자

변수의 범위는 지역 변수의 범위보다 넓습니다. 사용자 변수는 현재 연결 전체에 대해 작동할 수 있지만, 현재 연결이 끊어지면 해당 연결에 의해 정의된 사용자 변수는 사라집니다. 사용자 변수는 다음과 같이 정의됩니다. @
변수 이름

#举例
set @a = 1;
set @b = 2;
select @sum:=(@a + @b), @dif:=(@a - @b);

결과


mysql의 변수에 대한 자세한 소개

사용자 변수

세션 변수(@@ 2개)

서버는 연결된 각 클라이언트에 대해 일련의 세션 변수를 유지 관리합니다. 클라이언트가 연결되면 클라이언트의 세션 변수는 해당 전역 변수의 현재 값을 사용하여 초기화됩니다. 세션 변수 설정에는 특별한 권한이 필요하지 않지만 클라이언트는 자신의 세션 변수만 변경할 수 있으며

다른 클라이언트의 변수는 변경할 수 없습니다. . 현재 연결이 끊어지면 해당 연결에 의해 설정된 모든 세션 변수가 무효화됩니다. 会话变量的作用域与用户变量一样,仅限于当前连接

#设置会话变量有如下三种方式:
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%";

전역 변수(@@ 2개)

전역 변수는 서버의 전반적인 동작에 영향을 줍니다. 서버가 시작되면 모든 전역 변수가 기본값으로 초기화됩니다. 이러한 기본값은 옵션 파일이나 명령줄에 지정된 옵션으로 변경할 수 있습니다. 전역 변수를 변경하려면

SUPER 권한이 있어야 합니다. 전역 변수는 서버의 전체 수명 주기에서 작동하지만 재시작을 포괄할 수는 없습니다. 즉, 다시 시작하면 설정된 모든 전역 변수가 무효화됩니다. 다시 시작한 후에도 전역 변수가 계속 적용되도록 하려면 해당 구성 파일을 변경해야 합니다.

#要设置一个全局变量,有如下两种方式:
set global var_name = value; 
set @@global.var_name = value; //同上

#要想查看一个全局变量,有如下两种方式:
select @@global.var_name;
show global variables like "%var%";

참고: 여기서는 global을 생략할 수 없습니다. 매뉴얼에 따르면 set 명령어로 변수를 설정할 때 GLOBAL, SESSION, LOCAL을 지정하지 않으면 기본적으로 SESSION이 사용된다.

[관련 추천]

1.

무료 mysql 온라인 동영상 튜토리얼

MySQL 최신 매뉴얼 튜토리얼

3.

불린 교육 Yan Shiba mysql 소개 영상 튜토리얼

위 내용은 mysql의 변수에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.