데이터베이스/이론

[삼쾌한 IT강의] MySQL 변수 종류 및 사용법

삼쾌한IT 2022. 7. 23. 16:45

 안녕하세요! 삼쾌한 IT강의 백소라강사 입니다.

아래와 같이 MySQL 의 변수 종류와 사용법을 정리했습니다.

 

 

 

 

1. 사용자 정의 변수 

 1-1. 사용자 정의 변수 선언 및 초기화

   SET @변수이름 = 대입값;   혹은  SET @변수이름 := 대입값;
   SELECT @변수이름 := 대입값;

 SET 이외의 명령문에서는 = 가 비교연산자로 취급되기 때문에 SELECT 로 변수를 선언하고 값을 대입할 때는 := 를 사용한다.  

 

 

 1-2. 사용자 정의 변수 사용법     

      SET @start = 15, @finish = 20;
또는 
      SELECT @start := 15, @finish := 20;
      SELECT * FROM employee WHERE id BETWEEN @start AND @finish;

 

 

 1-3. 참고사항

   저장하는 값에 의해 자료형이 정해지며, Integer, Decimal, Float, Binary 그리고 문자열 타입만 취급할 수 있다. 또한 변수를 초기화 하지 않은 경우 값은 NULL,  자료형은 String 타입이다.

 

 

 

 

2. 지역변수 

 2-1 지역변수 선언 및 초기화 

DELIMITER $$
     CREATE PROCEDURE testPro(var1 INT)
     BEGIN
        DECLARE start INT DEFAULT 1;
        DECLARE finish INT DEFAULT 10;

        SELECT var1, start, finish;
        SELECT * FROM employees WHERE id BETWEEN start AND fisnish;
     END $$
DELIMITER ; 
CALL testPro(1);

 DECLARE 로 먼저 선언 후에 사용하며, 지역변수로 사용하거나 스토어 프로시저(저장 프로시저)의 매개변수로 사용될 수 있다. 또한 변수의 범위는 변수가 선언되는 곳의 BEGIN ~ END 블록으로 제한된다. 

 

 

  2-2 참고사항

    DEFAULT 기재를 하지않으면 초기값은 NULL 이다.

 

 

 

3. 시스템 변수

  3-1. 시스템 변수 확인하기 

   SHOW GLOBAL VARIABLES;                       -- 모든 시스템 변수를 확인한다.
   SHOW GLOBAL VARIABLES LIKE 'CHAR%';     -- 변수 이름이 CHAR로 시작되는 시스템 변수를 확인한다.

  첫번째 방식처럼 모든 시스템 변수를 확인하는 경우 시스템 변수의 개수가 무려 400개가 넘기 때문에 패턴(LIKE)을 이용하여 필요한 변수를 확인하는 것이 좋다. 

 

 

   3-2. 시스템 변수 수정하기

SET GLOBAL [시스템 변수 이름] = 적용할 값 ;

 예를들어 character_set_server의 값을 utf8 로 바꾸고 싶다면, SET GLOBAL character_set_server = utf8;

 

 

 

 

 

참고 사이트: 

 http://www.mysqlkorea.com/

 https://stackoverflow.com/questions/11754781/how-to-declare-a-variable-in-mysql