
🚀 쿼리문을 짜면, 임의로 변수 선언이 필요 해 진다
변수 이름은 alphanumeric 문자와 ' _ ', ' $ ', ' , '로 구성이 된다.
alphanumeric 문자란?
http://www.ktword.co.kr/test/view/view.php?m_temp1=4061
알파뉴메릭 코드
Alphanumeric Code, Numeric Code 알파뉴메릭 코드, 영숫자 부호, 수치 코드, 2진 코드, 이진 코드, 2진 부호, 이진 부호, M진 코드, M진 부호(2022-02-02)
www.ktword.co.kr
변수에는 초기값이 지정되지 않고 null = default, Integer, real, String으로 값을 저장할 수 있다.
변수 이름은 ver5.0부터 대소문자 구분이 없어진다.
🚀 @
set @var1 := 'hello'
set @var2 = 'hello', @var2 = 'hi'
변수 값을 할당하는 set은 =, := 을 사용하여 선언할 수 있다.
set @num := 1;
select (@num := @num + 1);
사용자 변수는 SQL 문장에서 그 값을 참조해서 다른 연산을 수행할 수도 있다.
저런 연산을 할 땐 동일 SQL 문장에서 변수에 값을 할당하고 동시에 값을 참조하면 안된다.
그래서 변수를 사용할 땐, 초기화 하는 방법을 주로 사용한다
set @num = 1;
select (@num := @num+1)
from (SELECT @num := 1); // from 절 구문은 set과 동일한 역할
🚀 지역변수
지역변수는 선언할 때 declare 문이 앞에 선언되어 있어야 한다.
저장 프로시저 내에서 지역변수 및 입력 매개변수로 사용할 수 있다.
delimiter //
create procedure test(var1 int)
begin
declare start int unsigned default 1;
declare finish int unsigned default 10;
select var1, start, finish;
end; //
delimiter //
call test(5);
CREATE PROCEDURE sp_test(var1 INT)
BEGIN
DECLARE start INT unsigned DEFAULT 1;
DECLARE finish INT unsigned DEFAULT 10;
SELECT var1, start, finish;
END; //
delimeter ;
call test(5);
위에서 말했다시피 default 절이 없다면 초기값은 null이 되지 않는다.
여기서 지역변수의 범위는 begin ~ end 절 안이다
'Database' 카테고리의 다른 글
[OracleDB] 시퀀스(Sequence) (0) | 2022.05.25 |
---|---|
[OracleDB] JOIN (0) | 2022.05.25 |
[OracleDB] 제약조건 (0) | 2022.05.21 |
[OracleDB] SELECT (0) | 2022.05.15 |
[OracleDB] SQL 종류 (DDL.DML.DCL) (0) | 2022.05.14 |