MySQL 사용자 정의 변수

SQL 2015. 1. 13. 07:29
728x90

MySQL 사용자 정의 변수


MySQL에서 하나의 명령문에 있는 값을 다른 명령문으로 전달하는 것이 가능하다.

사용자 정의 변수에 값을 저장한 후에 나중에 그 값을 참조할 수 있다.

한 클라이언트에서 정의된 사용자 변수는 다른 클라이언트에서는 보이지 않으며 사용할 수 없다. 

해당 커넥션에서 정의된 모든 변수는 클라이언트가 종료되면 자동으로 해제된다.


사용자 변수는 @var_name 이라고 쓰며, 항상 @ 하나가 따라와야 한다.

사용자 변수 이름은 알파벳, 숫자, ‘.’, ‘_’, 그리고 ‘$’을 사용할 수 있다.


사용자 변수 값 할당 방법

SET @var_name = expr  (정수, 실수, 문자열, NULL) SET 변수할당은 = 또는 := 둘다 사용 가능하다.

비 SET 문에서는 := 로 할당한다. = 는 비교 연산자로 취급되기 때문이다.

여러개의 변수를 선언할때는 DECLARE @ 변수명 자료형, @변수명 자료형

과 같은 방법으로 계속 적어주면 된다


SELECT 문의 가장 기본은 SELECT/FROM/WHERE이다. 

복잡한 쿼리문을 작성할 때도 SELECT/FROM/WHERE를 작성하고 나머지 부분을 채우는 것이 좋다


SET @rownum = 0;

select (@rownum := @rownum + 1) as No, name, email from emp order by name DESC;


SET을 지정하지 않고 한번에 처리하려면

select (@rownum := @rownum + 1) as No, e.name, e.email from (selct @rownum := 0) dummy, emp e order by e.name DESC;


No 를 지정하면 순차적으로 번호가 증가되어 결과를 찾을 때 좀더 편할 것이다.

from 절에서 조인(join) 으로 사용한 emp 테이블의 별칭을 e 로 지정했는데 select 문에서 e.name, e.email 등과 같이 명확하게 해주면 좋지만 그냥 name, email 로 적어도 무방하다.



참조

http://www.mysqlkorea.com/sub.html?mcode=manual&scode=01&m_no=21582&cat1=9&cat2=292&cat3=0&lang=k


블로그 이미지

Link2Me

,