DB/SQL

[SQL]변수

journey-dev 2023. 5. 31. 16:03

sql문에서 변수를 크게 3가지로 나눌 수 있다.

1. 사용자 정의 변수 2. 지역 변수 3.시스템 변수   (아직 사용자 정의 변수만 공부함.)

 

 

[Mysql] 

사용자 정의 변수

: Mysql워크벤치가 종료되면 변수 선언이 없어짐.  변수는 임시로 사용되는 될 뿐임.

 

1. 기본 형태 

 SET @변수명 = 변수값; -- 변수 선업
 SELECT @변수명; -- 변수 사용

 

2. 예제

-- 변수 선언
set @var1 = 5;  
set @var2 = 4.25;

-- 변수 사용
select @var1 -- 5;
select @var1 + @var2; -- 9.250000000000000000000000000000;
 -- 변수 선언
set @txt = '가수 이름은? : '; 
set @height = 165;

 -- 변수 사용
 select @txt,mem_name from member where height > @height;

 

 

3. LIMIT에서는 변수 사용 불가

set @count = 3;
select mem_name from member limit @count; -- limit에는 변수를 사용할 수 없음

-> 해결 : Prepare, Execute 사용

 

 

4. Prepare, Execute

실행할 sql문을 저장해놓고 나중에 실행할 수 있음.

이 구분을 사용하면 limit에서 변수 사용 가능함.

prepare any_name from 'select mem_name from member limit ?'; -- 실행시킬 sql문을 저장해 둠. 이떄 나중에 받을 값을 ?로 표시
execute any_name using @count; -- 저장된 select문을 실행시킴, using으로 ?에 변수값을 대입해줌.