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
'SQL' 카테고리의 다른 글
MySQL 테이블 칼럼 삭제 (0) | 2015.01.16 |
---|---|
MySQL 문자셋과 콜레이션이 쿼리에 미치는 영향 (0) | 2015.01.16 |
[MySQL] 테이블 생성 및 Text 대용량 자료 DB 업로드, character set 확인 (0) | 2015.01.10 |
MySQL에서 대용량 테이블의 경우 성능 개선을 위한 10 가지 방안 (0) | 2015.01.10 |
[MySQL] 특정 게시물 앞, 뒤 레코드값 출력 (0) | 2015.01.03 |