CAST(expr AS type)
CAST(timestamp_value AT TIME ZONE timezone_specifier AS DATETIME)
๋ชจ๋ ์ ํ์ ํํ์์ ๊ฐ์ ธ์ ์ง์ ๋ ์ ํ์ ๊ฒฐ๊ณผ ๊ฐ์ ์์ฑ
BINARY[(N)]
VARBINARY ๋ฐ์ดํฐ ํ์ ์ ๋ฌธ์์ด์ ์์ฑ, expr์ด ๋น ๋ฌธ์์ด(๊ธธ์ด 0)์ผ ๊ฒฝ์ฐ ๊ฒฐ๊ณผํ์ ์ BINARY(0)์ด ๋๋ค
N์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ์ธ์์ ๊ธธ์ด๋ฅผ ์ต๋ N ๋ฐ์ดํธ๊น์ง ์ฌ์ฉ, N ๋ฐ์ดํธ๋ณด๋ค ์งง์ผ๋ฉด 0x00 ๋ฐ์ดํธ๋ก N ๊ธธ์ด๋งํผ ์ฑ์(pad)์ค๋ค
N์ด ์ฃผ์ด์ง์ง ์์ ๊ฒฝ์ฐ, ํํ์์์ ์ต๋ ๊ธธ์ด๋ฅผ ๊ณ์ฐ → ๊ธธ์ด ๋๋ N ๊ฐ์ด ๋ด๋ถ ์๊ณ๊ฐ์ ์ด๊ณผํ๋ฉด BLOB ํ์ , ์ฌ์ ํ ๋๋ฌด ๊ธธ๋ฉด LONGBLOB ํ์
CHAR[(N)] [charset_info]
VARCHAR ๋ฐ์ดํฐ ํ์ ์ ๋ฌธ์์ด ์์ฑ, expr์ด ๋น ๋ฌธ์์ด(๊ธธ์ด 0)์ผ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ ํ์ ์ CHAR(0)์ด ๋๋ค
N์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ, ์ธ์์ ๊ธธ์ด๋ฅผ ์ต๋ N ๋ฌธ์๊น์ง ์ฌ์ฉ, ๊ฐ์ ๊ธธ์ด๊ฐ N๋ณด๋ค ์งง์๋ padding์ด ๋ฐ์ํ์ง ์๋๋ค
N์ด ์ฃผ์ด์ง์ง ์์ ๊ฒฝ์ฐ, ํํ์์์ ์ต๋ ๊ธธ์ด๋ฅผ ์๋์ผ๋ก ๊ณ์ฐ → ๋ด๋ถ ์๊ณ๊ฐ์ ์ด๊ณผํ๋ฉด TEXT ํ์ , ์ฌ์ ํ ๋๋ฌด ๊ธธ๋ฉด LONGTEXT ํ์
DATE
๋ ์ง(DATE) ๊ฐ ์์ฑ
DATETIME[(M)]
๋ ์ง์ ์๊ฐ(DATETIME) ๊ฐ ์์ฑ, M์ ์์ ์ด์ ์ ๋ฐ๋๋ฅผ ๋ํ๋ธ๋ค
DECIMAL[(M [, D])]
๊ณ ์ ์์์ ์ซ์ ์์ฑ, M: ์ ์ฒด ์๋ฆฟ์(์ ๋ฐ๋, ์ต๋ ์๋ฆฌ์, ์๋ต์ 10), D: ์์์ ์ดํ ์๋ฆฟ์(์๋ต์ 0)
ex) DECIMAL(5, 2) → ์ต๋ 5์๋ฆฌ, ์์์ ์ดํ 2์๋ฆฌ (999.99๊น์ง ์ ์ฅ ๊ฐ๋ฅ)
DOUBLE
๋ฐฐ์ ๋ฐ๋ ๋ถ๋์์์ ์ซ์ ์์ฑ, ๊ณ ์ ๋ ์ ๋ฐ๋ ์์(๋ ๋ง์ ์์์ ์๋ฆฟ์ ํํ ๊ฐ๋ฅ), ๊ณ ์ ์์์ (DECIMAL)๋ณด๋ค ๋ ํฐ ๋ฒ์๊ฐ ํ์ํ ๋ ์ฌ์ฉ
FLOAT[(p)]
๋จ์ ๋ฐ๋ ๋ถ๋์์์ ์ซ์ ์์ฑ, 0 <= p <= 24 → FLOAT, 25 <= p < 53 → DOUBLE, p < 0 ๋๋ p > 53 → ์๋ฌ๋ฐ์, p ์๋ต์ ๊ธฐ๋ณธ์ ์ผ๋ก FLOAT ํ์
ex) FLOAT(20) → FLOAT ํ์ / FLOAT(30)→ DOUBLE ํ์
JSON
JSON ๋ฐ์ดํฐ ํ์ ์์ฑ, ์ ์ฐํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ์ํ ๋ ์ฌ์ฉ(๋ฐฐ์ด, ๊ฐ์ฒด ์ ์ฅ)
NCHAR[(N)]
CHAR๊ณผ ๋น์ทํ์ง๋ง ๊ตญ๊ฐ๋ณ ๋ฌธ์ ์งํฉ ์ฌ์ฉ, N: ์ต๋ ๋ฌธ์ ๊ฐ์, ๋ค๊ตญ์ด ์ง์์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ, CHAR๊ณผ ๋ฌ๋ฆฌ ๋ฌธ์ ์งํฉ ์ ๋ณด๋ฅผ ๋ค์ ๋ถ์ผ ์ ์๋ค
ex) NCHAR(10) → ์ต๋ 10๋ฌธ์ ์ ์ฅ
REAL
๋ถ๋์์์ ์ ์ ์ฅํ ๋ ์ฌ์ฉ, REAL_AS_FLOAT ๋ชจ๋์ ๋ฐ๋ผ ํ์ ๊ฒฐ์ → ํ์ฑํ: FLOAT ํ์ , ๋นํ์ฑํ: DOUBLE ํ์
SIGNED
๋ถํธ๊ฐ ์๋ BIGINT ๊ฐ ์์ฑ, ์์์ ์์ ๋ชจ๋ ์ ์ฅ ๊ฐ๋ฅ, ํฐ ์ ์ ์ ์ฅํด์ผ ํ ๋ ์ฌ์ฉ
spatial_type
๊ณต๊ฐ(์ง๋ฆฌ) ๋ฐ์ดํฐ ํ์ , CAST()์ CONVERT()๋ฅผ ์ฌ์ฉํด ๋ค์ํ ๊ณต๊ฐ ํ์ ๊ฐ ๋ณํ ๊ฐ๋ฅ, ์์น ์ ๋ณด(์ง๋ฆฌ ์ขํ, ๋ํ) ์ ์ฅ
TIME(M)
์๊ฐ(TIME) ๊ฐ์ ์์ฑ, M(์ ๋ฐ๋): ์์ ์ด์ ์๋ฆฟ์, M ์๋ต์ ์ด ๋จ์๊น์ง๋ง ํ์, M ์ง์ ์ ์์ ์ด ํฌํจ
ex) TIME(3) → 13:14:40.789 (์์์ 3์๋ฆฌ)
UNSIGNED
๋ถํธ๊ฐ ์๋ BIGINT ๊ฐ ์์ฑ, ์์๋ ์ ์ฅ ๋ถ๊ฐ, ์์๋ง ์ ์ฅ ๊ฐ๋ฅ, ์์๋ง ์ ์ฅํด์ผ ํ๋ ํฐ ์ ์์ ์ฌ์ฉ
YEAR
์ฐ๋(YEAR) ๊ฐ ์์ฑ
'0' → 2000 ๋ฆฌํด, '1'~'69' → 2000 ๋ํจ, '70'~'99' → 1900 ๋ํจ, ์ซ์ 0 → 0 ๋ฆฌํด
4์๋ฆฌ ์ซ์(1901~2155) ๋๋ ํด๋น ๋ฒ์๋ก ํด์ ๊ฐ๋ฅํ ๋ฌธ์์ด → ํด๋น ์ฐ๋ ๋ฆฌํด
DATE, DATETIME, TIMESTAMP → ํด๋น ๊ฐ์ ์ฐ๋ ๋ถ๋ถ ๋ฆฌํด, TIME → ํ์ฌ ์ฐ๋ ๋ฆฌํด
ex) YEAR('68') → 2068 / YEAR('72') → 1972
CAST('5' AS UNSIGNED) -- 5
CAST(3 AS TIME) -- 13:29.10.455
CAST('68' AS YEAR) -- 2068
CONVERT(expr USING transcoding_name)
CONVERT(expr, type)
๋ช ์๋ ํ์ ์ผ๋ก ๋ณํ
CONVERT('test' USING utf8mb4)
CONVERT('test', CHAR CHARACTER SET utf8mb4)
CONVERT(123, CHAR)
๋๋ณด๊ธฐ
CHARACTER SET charset_name์ ์ง์ ํ๋ฉด,
๋ฌธ์ ์งํฉ : charset_name
์ ๋ ฌ ๋ฐฉ์ : charset_name์ ๊ธฐ๋ณธ ์ ๋ ฌ ๋ฐฉ์
→ ์์ธก ๊ฐ๋ฅํ ๋ฌธ์ ์งํฉ๊ณผ ์ ๋ ฌ ๋ฐฉ์ ์ฌ์ฉ (์ผ๊ด๋ ๊ฒฐ๊ณผ๋ฅผ ์ํ๋ค๋ฉด ๋ช ์์ ์ผ๋ก ์ง์ ํ๊ธฐ)
CHARACTER SET charset_name์ ์๋ตํ๋ฉด,
character_set_connection : ๊ธฐ๋ณธ ์ฐ๊ฒฐ ๋ฌธ์ ์งํฉ ์ ์
collation_connection : ๊ธฐ๋ณธ ์ฐ๊ฒฐ ์ ๋ ฌ ๋ฐฉ์ ์ ์
→ ์๋ฒ์ ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๋ผ ๊ฒฐ์
๋ฐ์ํ
'๐ SQL > ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋นํธ์ฐ์ฐ์ (0) | 2025.03.07 |
|---|---|
| WITH ๊ณตํต ํ ์ด๋ธ ํํ์(CTE) (0) | 2025.02.24 |
| MAX()์ LIMIT 1 (0) | 2025.02.22 |
| LIKE / REGEXP (0) | 2025.02.20 |
| JOIN (0) | 2025.02.19 |