SQL에서 선언이란 변수를 선언하는 것을 의미하며 일반적으로 함수나 저장 프로시저에서 사용됩니다. 예를 들어, 이 저장 프로시저를 사용하면 학생 ID를 입력하는 동안 학생의 수업을 쿼리할 수 있습니다. 그런 다음 이 저장 프로시저에서 학생 ID가 매개변수입니다. 어떤 학생 번호를 제공하든 해당 수업이 반환됩니다. 또는 학생 ID를 입력하는 동안 이 저장 프로시저가 학생을 삭제하도록 만들 수도 있습니다.
mysql 저장 프로시저에서는 변수를 정의하는 방법이 두 가지가 있습니다.
1. set 또는 select를 사용하여 직접 값을 할당하며, 변수 이름은 @으로 시작합니다.
p>
예: set @var=1;
세션의 어느 위치에서나 선언할 수 있으며 범위는 전체 세션이며 세션 변수라고 합니다.
2. DECLARE 키워드로 선언된 변수는 저장 프로시저에서만 사용할 수 있으며 저장 프로시저 변수라고 합니다. 예:
DECLARE var1 ?INT DEFAULT ?
p>는 주로 저장 프로시저에서 사용되거나 매개변수를 저장소로 전달할 때 사용됩니다.
둘 사이의 차이점은 다음과 같습니다.
저장 프로시저를 호출할 때 DECLARE로 선언된 변수는 NULL로 초기화됩니다. 세션 변수(즉, @로 시작하는 변수)는 다시 초기화되지 않습니다. 세션 내에서는 한 번만 초기화하면 되며, 그 후에는 전역 변수와 동일한 세션의 마지막 계산 결과가 됩니다. 이 세션 변수의 값입니다.
저장 프로시저에서는 동적 문을 사용합니다. 전처리 중에 동적 콘텐츠를 세션 변수에 할당해야 합니다.
예:
set @v_sql= sqltext;
@v_sql에서 stmt를 준비 ?
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
때때로 데이터베이스를 쿼리하고 업데이트할 때 여러 문이 필요하므로 여러 수정이 필요합니다.
선언은 여러 실행을 충족할 수 있지만 데이터는 단지 데이터일 뿐입니다. 한 번 수정되었습니다.
declare?@local_variable data_type
DECLARE: 변수를 정의합니다. 변수의 첫 글자는 "@"입니다.
변수 유형을 지정해야 합니다. 변수를 선언할 때
p>
set 및 select를 사용하여 변수에 값을 할당할 수 있습니다.
SQL 문에서 @local_variable을 사용하여 변수를 호출할 수 있나요?< /p>
값은 명령문에 제공될 수 있습니다. 그렇지 않으면 명령문 모든 변수가 나중에 NULL로 초기화됩니다.