๋ณ์ ์ฌ์ฉ ํ์
SET @๋ณ์๋ช
= ๋ณ์๊ฐ; -- ๋ณ์ ์ ์ธ, ๊ฐ ๋์
SELECT @๋ณ์์ด๋ฆ; -- ๋ณ์ ์ถ๋ ฅ
์์
SET @VAR1 = 1;
SET @VAR2 = 2;
SELECT @VAR1; -- ๊ฒฐ๊ณผ 1
SELECT @VAR1 + @VAR2; -- ๊ฒฐ๊ณผ 2
SET, PREPARE, EXECUTE ๋ฌธ
SET @VAR1 = 1;
PREPARE Query
FROM 'SELECT * FROM [ํ
์ด๋ธ๋ช
] ORDER BY [์ ๋ ฌ๊ธฐ์ค] LIMIT ?'; -- '?'์์น์ ๋ณ์ ์ฌ์ฉํด ์ฟผ๋ฆฌ๋ฌธ PREPARE
EXECUTE Query USING @VAR1; -- ๋ณ์ ์คํ๋ฌธ
๋ฐ์ดํฐ ํ์ ๋ณํ ํจ์
- CONVERT(), CAST(): ๊ฐ์ ๋ก ๋ฐ์ดํฐํ์ ๋ณํํ๋ ํจ์
-- ๋ฐ์ดํฐ๋ฅผ ์ ์๋ก ์ถ๋ ฅ
SELECT CAST([๋ฐ์ดํฐ] AS SIGNED INTEGER) AS '๋ถ๋ฌ์ฌ ์ด๋ฆ' FROM [ํ
์ด๋ธ๋ช
];
SELECT CONVERT([๋ฐ์ดํฐ], SIGNED INTEGER) AS '๋ถ๋ฌ์ฌ ์ด๋ฆ' FROM [ํ
์ด๋ธ๋ช
];
- CAST()์์
- ๋ค์ํ ๊ตฌ๋ถ์($, /, %, @)๋ฅผ ๋ ์ง ํ์(-)์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
SELECT CAST('2021$01$19' AS DATE);
SELECT CAST('2021/01/19' AS DATE);
SELECT CAST('2021%01%19' AS DATE);
SELECT CAST('2021@01@19' AS DATE);
- ๋ฌธ์์ด ์ฐ๊ฒฐ ํจ์ CONCAT
- ์ธ์์ ์ซ์๊ฐ ๋ค์ด์์ด๋ ๋ฌธ์๋ก ํ๋ณํ ์ผ์ด๋จ.
- CAST์ CONVERT๊ฐ ๋ช ์์ ํ๋ณํ, CONCAT์ด ๋ฌต์์ /์์์ /์๋ํ๋ณํ
SELECT CONCAT('๋ฌธ์์ด','์ฐ๊ฒฐํ๊ธฐ', '1');
SELECT CONCAT('๋ฌธ์์ด','์ฐ๊ฒฐํ๊ธฐ', 1);
๋ด์ฅ ํจ์(์ ์ด)
- IF(์์, ์ฐธ, ๊ฑฐ์ง)
- ์์์ด ์ฐธ์ด๋ฉด ๋๋ฒ์งธ ์ธ์ ๋ฐํ, ๊ฑฐ์ง์ด๋ฉด ์ธ ๋ฒ์งธ ์ธ์ ๋ฐํ
SELECT IF(1>2, '์ฐธ', '๊ฑฐ์ง');
- IFNULL(์์1, ์์2)
- ์์1์ด NULL์ด ์๋๋ฉด ์์2, NULL์ด๋ฉด ์์1 ๋ฐํ
SELECT IFNULL(NULL, '์ฐธ'), IFNULL(10, '๊ฑฐ์ง');
- NULLIF(์์1, ์์2)
- ์์1๊ณผ ์์2 ๊ฐ์ผ๋ฉด NULL๋ฐํ, ๋ค๋ฅด๋ฉด ์์1 ๋ฐํ
SELECT NULLIF(10,10), NULLIF(10,20);
- CASE WHEN ELSE END
- CASE๋ ์ฐ์ฐ์
- ๋ค๋ฅธ ์ธ์ด์ switch๋ฌธ๊ณผ ๋น์ท
SELECT CASE 2
WHEN 1 THEN '1'
WHEN 2 THEN '2'
WHEN 3 THEN '3'
ELSE 'NULL'
END;
728x90