π‘ MySQLμ μ¬λ¬ κ°μ§ λ°μ΄ν° μ νμ μ§μ
(λ¬Έμμ΄, μ«μ, λ μ§, μκ°)νλ€.
μ μ ν λ°μ΄ν° μ νμ μ μνλ©΄ λ°μ΄ν°μ μ₯ 곡κ°μ ν¨μ¨μ μΌλ‘ μ¬μ©νκ³ λ°μ΄ν° μ λ ₯μμ ν¨μ± κ²μ¬μλ λμμ΄ λλ€.
- μ μ λλ μ€μ λ±μ μ«μλ₯Ό νννλ€.
- FLOATμ΄λ DOUBLEνμ ν° λ²μμ μ«μλ₯Ό μ μ₯ν μ μμ§λ§ μ ννμ§ μμ κ·Όμ¬μΉλ₯Ό μ μ₯νλ€. λ°λΌμ μ€μ νμ μ μ₯νκ³ μΆμ΄λ DECIMALμ μ¬μ©νλ κ²μ΄ λ°λμ§νλ€.
| λ°μ΄ν° νμ | λ°μ΄νΈ μ | μ«μ λ²μ | μ€λͺ |
|---|---|---|---|
| BIT(N) | N/B | 1~64Bit νν, b'0000'νμμΌλ‘ νν | |
| TINYINT | 1 | -128 ~ 127 | μ μ |
| SMALLINT | 2 | -32,768 ~ 32,767 | μ μ |
| MEDIUMINT | 3 | -8,388,608 ~ 8,388,607 | μ μ |
| INT INTEGER | 4 | μ½-21μ΅ ~ +21μ΅ | μ μ |
| BIGINT | 8 | μ½ -900κ²½ ~ +900κ²½ | μ μ |
| FLOAT | 4 | 3.40E+38 ~ -1.17E-38 | μμμ μλ 7μ리κΉμ§ νν |
| DOUBLE | 8 | -1.22E-308 ~ 1.79E+308 | μμμ μλ 15μ리κΉμ§ νν |
| DECIMAL(m,[d]) NUMBER(m,[d]) | 5~17 | -10^38+1 ~ 10^38-1 | μ 체 μλ¦Ώμ(m)μ μμμ μ΄ν μλ¦Ώμ(d)λ₯Ό κ°μ§ |
- CHARλ κ³ μ κΈΈμ΄ λ¬ΈμνμΌλ‘ μλ¦Ώμκ° λΆλ³μ΄λ€.
- VARCHARλ κ°λ³κΈΈμ΄ λ¬ΈμνμΌλ‘ μλ¦Ώμκ° κ°λ³μ΄λ€.
(ν° μλ¦Ώμλ₯Ό μ€μ ν΄λ μ μ₯ν 곡κ°μ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ€.)
- CHAR νμμΌλ‘ μ€μ νλ κ²μ΄ INSERT/UPDATE μμ μΌλ°μ μΌλ‘ λ μ’μ μ±λ₯μ λ°ννλ€.
- λμ©λ λ°μ΄ν°λ TEXTκ³μ΄μ λ°μ΄ν° νμμΌλ‘ μ μ₯νλ€.
- BLOB(Binary Large Object)μ μ¬μ§ νμΌ, λμμ νμΌ, λ¬Έμ νμΌ λ±μ λμ©λ μ΄μ§ λ°μ΄ν°λ₯Ό μ μ₯νλ€.
- ENUMμ μ΄κ±°ν λ°μ΄ν°λ₯Ό μ¬μ©(μμΌμ΄λ μΉ΄ν κ³ λ¦¬ λ±) μ νμ©λλ λ°©μμ΄λ€.
- SETμ μ΅λ 64κ°λ₯Ό μ€λΉν νμ 2κ°μ© μΈνΈλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ λ°©μμ μ¬μ© μ νμ©λλ λ°©μμ΄λ€.
- LONGTEXTλ λμ©λ λ¬Έμ λ°μ΄ν°, LONGBLOBμ λμμ νμΌκ³Ό κ°μ ν° λ°μ΄λ리 νμΌ μ μ₯ μμ νμ©ν μ μλ€.
| λ°μ΄ν° νμ | λ°μ΄ν° νμ | λ°μ΄νΈ μ | μ€λͺ |
|---|---|---|---|
| CHAR(n) | 1 ~ 255 | κ³ μ κΈΈμ΄ λ¬Έμν nμ 1λΆν° 255κΉμ§ μ§μ κ·Έλ₯ CHARλ§ μ°λ©΄ CHAR(1)κ³Ό λμΌ | |
| VARCHAR(n) | 1 ~ 65535 | κ°λ³κΈΈμ΄ λ¬Έμν | |
| nμ μ¬μ©νλ©΄ 1λΆν° 65535κΉμ§ μ§μ | |||
| BINARY(n) | 1 ~ 255 | κ³ μ κΈΈμ΄μ μ΄μ§ λ°μ΄ν° κ° | |
| VARBINARY(n) | 1 ~ 255 | κ°λ³κΈΈμ΄μ μ΄μ§ λ°μ΄ν° κ° | |
| TEXT | TINYTEXT | 1 ~ 255 | 255 ν¬κΈ°μ TEXT λ°μ΄ν° κ° |
| TEXT | TEXT | 1 ~ 65535 | N ν¬κΈ°μ TEXT λ°μ΄ν° κ° |
| TEXT | MEDIUMTEXT | 1 ~ 16777215 | 16777215 ν¬κΈ°μ TEXT λ°μ΄ν° κ° |
| TEXT | LONGTEXT | 1 ~ 4294967295 | μ΅λ 4GB ν¬κΈ°μ TEXT λ°μ΄ν° κ° |
| BLOB | TINYBLOB | 1 ~ 255 | 255 ν¬κΈ°μ BLOB λ°μ΄ν° κ° |
| BLOB | BLOB | 1 ~ 65535 | N ν¬κΈ°μ BLOB λ°μ΄ν° κ° |
| BLOB | MEDIUMBLOB | 1 ~ 16777215 | 16777215 ν¬κΈ°μ BLOB λ°μ΄ν° κ° |
| BLOB | LONGBLOB | 1 ~ 4294967295 | μ΅λ 4GB ν¬κΈ°μ BLOB λ°μ΄ν° κ° |
| ENUM(κ°λ€...) | 1 λλ 2 | μ΅λ 65535κ°μ μ΄κ±°ν λ°μ΄ν° κ° | |
| SET(κ°λ€...) | 1, 2, 3, 4, 8 | μ΅λ 64κ°μ μλ‘ λ€λ₯Έ λ°μ΄ν° κ° |
| λ°μ΄ν° νμ | λ°μ΄νΈ μ | μ€λͺ | |
|---|---|---|---|
| DATE | 3 | λ μ§λ 1001-01-01 ~ 9999-12-31 κΉμ§ μ μ₯λλ©° λ μ§ νμλ§ μ¬μ© | |
| 'YYYY-MM-DD' νμμΌλ‘ μ¬μ©λ¨ | |||
| TIME | 3 | -838:59:59.000000 ~ 838:59:59.000000 κΉμ§ μ μ₯λλ©° | |
| 'HH:MM:SS' νμμΌλ‘ μ¬μ© | |||
| DATETIME | 8 | λ μ§λ 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 κΉμ§ μ μ₯λλ©° νμμ | |
| 'YYYY-MM-DD HH:MM:SS' νμμΌλ‘ μ¬μ© | |||
| TIMESTAMP | 4 | λ μ§λ 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 κΉμ§ μ μ₯λλ©° νμμ 'YYYY-MM-DD HH:MM:SS' νμμΌλ‘ μ¬μ© | |
| time_zone μμ€ν λ³μμ κ΄λ ¨μ΄ μκ³ UTC μκ°λ λ³ννμ¬ μ μ₯ | |||
| YEAR | 1 (tiny_int?) | 1901 ~ 2155κΉμ§ μ μ₯ | |
| 'YYYY' νμμΌλ‘ μ¬μ© |
| λ°μ΄ν° νμ | λ°μ΄νΈ μ | μ€λͺ |
|---|---|---|
| GEOMETRY | N/A | κ³΅κ° λ°μ΄ν° νμμΌλ‘ μ , μ λ° λ€κ°ν κ°μ κ³΅κ° λ°μ΄ν° κ°μ²΄λ₯Ό μ μ₯νκ³ μ‘°μ |
| JSON | 8 | JSON λ¬Έμλ₯Ό μ μ₯ |
π« SQL λ°μ΄ν°μ νλ³νμλ
λͺ μμ νλ³νκ³Όμμμ νλ³νμ΄ μλ€.
- CAST (expression AS λ°μ΄ν°νμ [(κΈΈμ΄)])
- CONVERT (expression, λ°μ΄ν°νμ [(κΈΈμ΄)])
- λ°μ΄ν° νμμΌλ‘ κ°λ₯ν κ²μ BINARY, CHAR, DATE, DATETIME, DECIMAL, JSON, SIGNED INTEGER, TIME, UNSIGNED INTEGER λ±μ΄ μλ€.
SELECT AVG(menu_price) FROM tbl_menu;
SELECT CAST(AVG(menu_price) AS SIGNED INTEGER) AS 'νκ· λ©λ΄ κ°κ²©' FROM tbl_menu;
SELECT CONVERT(AVG(menu_price), SIGNED INTEGER) AS 'νκ· λ©λ΄ κ°κ²©' FROM tbl_menu;
SELECT CAST('2023$5$30' AS DATE);
SELECT CAST('2023/5/30' AS DATE);
SELECT CAST('2023%5%30' AS DATE);
SELECT CAST('2023@5@30' AS DATE);
β‘οΈ λ©λ΄ κ°κ²© ꡬνκΈ°
SELECT CAST(menu_price AS CHAR(5)) FROM tbl_menu;
SELECT CONCAT(CAST(menu_price AS CHAR(5)), 'μ') FROM tbl_menu;
β‘οΈ μΉ΄ν
κ³ λ¦¬λ³ λ©λ΄ κ°κ²© ν©κ³ ꡬνκΈ°
SELECT category_code, CONCAT(CAST(SUM(menu_price) AS CHAR(10)), 'μ') FROM tbl_menu GROUP BY category_code;
λ°λ‘ μ²λ¦¬νμ§ μμλ λ΄λΆμ μΌλ‘ μλμΌλ‘ νλ³νμ΄ μ΄λ£¨μ΄μ§λ€.
SELECT '1' + '2'; -- κ° λ¬Έμκ° μ μλ‘ λ³νλ¨
SELECT CONCAT(menu_price, 'μ') FROM tbl_menu; -- menu_priceκ° λ¬Έμλ‘ λ³νλ¨
SELECT 3 > 'MAY'; -- λ¬Έμλ 0μΌλ‘ λ³νλλ€.
SELECT 5 > '6MAY'; -- λ¬Έμμμ 첫λ²μ§Έλ‘ λμ¨ μ«μλ μ μλ‘ μ νλλ€.
SELECT 5 > 'M6AY'; -- μ«μκ° λ€μ λμ€λ©΄ λ¬Έμλ‘ μΈμλμ΄ 0μΌλ‘ λ³νλλ€.
SELECT '2023-5-30'; -- λ μ§νμΌλ‘ λ°λ μ μλ λ¬Έμλ DATEνμΌλ‘ λ³νλλ€.