ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [삼쾌한 IT강의] MySQL 변수 종류 및 사용법
    데이터베이스/이론 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

    댓글

Designed by Tistory.