변수명 앞에 참조 기호를 붙여서 참조. 참조 기호는 다음과 같다.
세션은 클라이언트와 MySQL 서버 간의 연결을 의미한다. 세션 관련 변수들(세션 수준 시스템 변수, 사용자 정의 변수)의 설정 값은 세션이 종료되면 사라진다.
시스템 변수는 데이터베이스 서버의 설정을 조정하는데 사용됨.
사용자 정의 변수는 세션 내에서 임시 데이터를 저장하는 데 사용됨.
-- 세션 시스템 변수 설정 (아래 2가지 명령은 같은 기능을 함)
SET SESSION 변수명1 = 값1;
SET @@변수명1 = 값1;
-- 세션 시스템 변수 참조
SELECT @@변수명1;
-- 글로벌 시스템 변수 설정
SET GLOBAL 변수명2 = 값2;
-- 글로벌 시스템 변수 참조
SELECT @@GLOBAL.변수명2;
-- 사용자 정의 변수 설정
SET @변수명3 = 값3;
-- 사용자 정의 변수 참조
SELECT @변수명3;
시스템 변수 설정 시 현재 세션 혹은 글로벌하게 설정이 되며, 연결된 DB 서버 내부의 모든 데이터베이스에 적용된다.
해당 열에 대한 값을 NULL로 넣어주면 DBMS가 자동으로 1부터 증가하는 값을 입력
CREATE TABLE 테이블명(
id INT AUTO_INCREMENT PRIMARY KEY,
username varchar(3),
age int(3));
증가값은 기본적으로 1이지만, 변경 가능
ALTER TABLE 테이블명 AUTO_INCREMENT = 1000;
=> 1000씩 증가
시스템 변수 설정을 통해 초기값과 이후 증가값을 다르게 할 수도 있다.
ALTER TABLE 테이블명 AUTO_INCREMENT = 1000;
-- 세션 시스템 변수 설정(세션 수준. 현재 세션에서만 유지)
SET @@auto_increment_increment = 3;
-- 또는 글로벌 시스템 변수 설정(세션이 끝나도 유지됨)
SET GLOBAL auto_increment_increment = 3;
=> 초기값은 1000, 이후 3씩 증가.
조회하려는 데이터를 형변환하여 보기 위해서 CAST나 CONVERT를 사용할 수 있다.
예시로 실수 형태 데이터를 정수로 형변환이 가능하다.
SELECT CAST(컬럼명 AS SIGNED INTEGER) FROM 테이블명;
-- 또는
SELECT CONVERT(컬럼명, SIGNED INTEGER) FROM 테이블명;
문자열 데이터를 DATE 형식으로 변환할 수도 있다.
SELECT CAST('2024$07$13' AS DATE);
SELECT CAST('2024/07/13' AS DATE);
SELECT CAST('2024@07@13' AS DATE);
SELECT CAST('2024%07%13' AS DATE);
SELECT CAST('2024!07!13' AS DATE);
SELECT CAST('2024.07.13' AS DATE);
SELECT CAST('2024.7.13' AS DATE);
기호에 관계없이 CAST. 달 앞에 0이 생략되어도 자동으로 형변환
SELECT '100' + '200'; -- 문자와 문자 더하기 => 정수로 변환 후 연산
SELECT CONCAT('100', '200') -- 문자와 문자 연결
SELECT CONCAT(100, '200') -- 정수와 문자 연결 => 문자로 변환 후 연결
SELECT 1 > '25mega'; -- 문자가 정수 25로 변환되어 비교
SELECT 3 > '2MEGA'; -- 문자가 정수 2로 변환되어 비교
SELECT 0 = 'mega2'; -- 문자가 0으로 변환되어 비교