...
사용자 정의 변수
사용자 정의 변수 선언 및 초기화
SET @변수이름 = 대입값;
-- or
SET @변수이름 := 대입값;
SELECT @변수이름 := 대입값;
SET 이외의 명령문에서는 = 가 비교연산자로 취급되기 때문에, SELECT 로 변수를 선언하고 값을 대입할 때는 := 를 사용한다.
사용자 정의 변수 사용법
SET @start = 15, @finish = 20;
-- 또는
SELECT @start := 15, @finish := 20;
SELECT * FROM employee WHERE id BETWEEN @start AND @finish;
[참고사항]
저장하는 값에 의해 자료형이 정해지며, Integer, Decimal, Float, Binary 그리고 문자열 타입만 취급할 수 있다.
또한 변수를 초기화 하지 않은 경우 값은 NULL, 자료형은 String 타입이다.
지역변수
지역변수 선언 및 초기화
DELIMITER $$
CREATE PROCEDURE testPro(var1 INT)
BEGIN
DECLARE start INT DEFAULT 1; -- int start = 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 블록으로 제한된다.
[참고사항]
DEFAULT 기재를 하지않으면 초기값은 NULL 이다.
시스템 변수
시스템 변수 확인하기
SHOW GLOBAL VARIABLES;
-- 모든 시스템 변수를 확인한다.
SHOW GLOBAL VARIABLES LIKE 'CHAR%';
-- 변수 이름이 CHAR로 시작되는 시스템 변수를 확인한다.
첫번째 방식처럼 모든 시스템 변수를 확인하는 경우 시스템 변수의 개수가 무려 400개가 넘기 때문에 패턴(LIKE)을 이용하여 필요한 변수를 확인하는 것이 좋다.
시스템 변수 수정하기
SET GLOBAL [시스템 변수 이름] = 적용할 값 ;
예를들어 character_set_server의 값을 utf8 로 바꾸고 싶다면,
SET GLOBAL character_set_server = utf8;
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.