✅ 형식
set @변수명 = 값; -- 변수의 선언 및 값 대입
select @변수명; -- 변수의 값 출력
💡 예시
set @myVar1 = 5;
set @myVar2 = 3;
set @myVar3 = 4.25;
set @myVar4 = '가수 이름 ==> ';
select @myVar1;
select @myVar2 + @myVar3;
select @myVar4, Name from usertbl where height > 180;
📝 perpare와 execute
set @myVar1 = 3; prepare myQuery from 'select name, height from usertbl order by height limit ?'; execute myQuery using @myVar1;
- 자바스크립트나 SQL문에서 SQL문을 준비 상태로 만들 때 사용한다.
prepare 쿼리문_이름은 쿼리문을 준비만 해놓고 실행하지 않는다.exeute 쿼리문_이름을 만나는 순간 해당 구문이 실행된다.
𝗤. CAST란?
𝐀. (모든 유형의) 값을 지정된 데이터 형식으로 변환해준다.
✅ 형식
CAST(value AS datatype)
-- value: 필수, 변환할 값
-- datatype: 변환할 데이터 타입
𝗤. CONVERT란?
𝐀. 값을 지정된 데이터 형식 또는 문자 지합으로 변환한다.
✅ 형식
CONVERT(value, type)
또는
CONVERT(value USING charset)
-- value: 필수, 변환할 값
-- data: 필수, 변환할 데이터 타입
-- charset: 필수, 변환할 문자 집합
💡 예시 (1)
select avg(amount) as '평균 구매 개수'
from buytbl;
-- 평균 구매 개수를 정수형으로 변환하기
-- [1] CAST 이용
select cast(avg(amount) as signed integer) as '평균 구매 개수'
from buytbl; -- 반올림 되어 출력된다.
-- [2] CONVERT 이용
select convert(avg(amount), signed integer) as '평균 구매 개수'
from buytbl;
-- signed: 부호 있는
💡 예시 (2)
-- 날짜 형식으로 출력하기
select cast('2023$01$01' as date);
select cast('2023/01/01' as date);
select cast('2023%01%01' as date);
select cast('2023@01@01' as date);
select cast('2023.01.01' as date);
// 해당 형식도 변환된다.
select cast('2024.2.29' as date);
select cast('24.2.29' as date);

💡 예시 (3)
-- 결합 함수 concat()을 사용하여 형변환하기
select num, concat(
cast(price as char(10)), 'X', cast(amount as char(4)), '=' ) as '단가X수량',
price * amount as '구매액'
from buytbl;
<결과>
1 30X2= 60
2 1000X1= 1000
3 200X1= 200
.
.
.
12 30X2= 60
SELECT '100' + '200' ; -- 300
문자가 정수로 변환된다.
SELECT CONCAT('100', '200'); -- 100200
CONCAT내장 함수를 사용하였기 때문에, 문자열 그대로 연결된다.
SELECT CONCAT(100, '200'); -- 100200
CONCAT내장 함수를 사용하였기 때문에, 정수가 문자로 변환된다.
SELECT 1 > '2mega'; -- 0
문자
2mega는 정수 2로 변환된 후 비교 연산을 진행한다.
SELECT 3 > '2MEGA'; -- 1
문자
2mega는 정수 2로 변환된 후 비교 연산을 진행한다.
SELECT 0 = 'mega2';
문자
mega는 정수 0으로 변환된 후 비교 연산을 진행한다.
이때, 산술 연산자나 문자 연산자는 숫자로 취급한다.