숫자 Numeric Data Types
DataType | 범위 |
BIT | 1 to 64 2^6 |
TINYINT | -128 to 127. 2^7 |
BOOL, BOOLEAN | 0 은 true, 0이 아니면 false |
SMALLINT | -32768 to 32767. 2^16 |
MEDIUMINT | -8388608 to 8388607. 2^24 |
INT | -2147483648 to 2147483647. 2^32 |
BIGINT | -9223372036854775808 to 9223372036854775807. 2^64 |
DECIMAL(M,D) | M인 자연수, D는 소숫점 표현으로 M은 65자리, D는 30자리까지 표현 가능 |
FLOAT(M,D) | -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to 3.402823466E+38. |
DOUBLE(M,D) | -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308. |
날짜와 시간 Date and Time Data Types
Data Type | 설명 |
DATE | 년-월-일 yyyy-mm-dd 2 digit Years in Dates
|
TIME | 시:분:초 hh:mi:ss '-838:59:59.000000' to '838:59:59.000000'. |
DATETIME | 년-월-일 시:분:초 yyyy-mm-dd hh:mi:ss '1000-01-01 00:00:00' to '9999-12-31 23:59:59'. |
TIMESTAMP | 년-월-일 시:분:초 yyyy-mm-dd hh:mi:ss '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC. |
YEAR | 년 yyyy
|
문자열 String Data Types
Types | 설명 |
CHAR | 고정길이 문자열 0 to 255 |
VARCHAR | 가변길이 문자열 0 to 65,535 |
BINARY | 고정길이 바이너리 문자열(보통 이미지 데이터 많이 사용됨) |
VARBINARY | 가변길이 바이너리 문자열(보통 이미지 데이터 많이 사용됨) |
BLOB | 엄청 큰 가변형 바이너리 데이터 * 인덱스로 사용 시 길이를 지정해주어야 함. * default 값을 가질 수 없음 |
TEXT | 엄청 큰 가변형 문자열 데이터 * 인덱스로 사용 시 길이를 지정해주어야 함. * default 값을 가질 수 없음 |
ENUM | 칼럼에 입력 가능한 값의 집합. 테이블이 생성되는 시점에 정의됨. |
SET | 칼럼에 입력 가능한 값의 목록. (set에 정의된 값 여러개를 동시에 입력 할 수 있음) 테이블이 생성되는 시점에 정의됨. |
[Enum]
CREATE TABLE shirts (
name VARCHAR(40),
size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
);
INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),
('polo shirt','small');
set
CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
+------+
| col |
+------+
| a,d |
| a,d |
| a,d |
| a,d |
| a,d |
+------+
JSON Data Types
[칼럼 타입을 JSON으로 선언]
CREATE TABLE t1 (jdoc JSON);
[JSON 입력]
INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
[JSON 검색]
* 특정 칼럼 값만 추출
mysql> SELECT JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name');
+---------------------------------------------------------+
| JSON_EXTRACT('{"id": 14, "name": "Aztalan"}', '$.name') |
+---------------------------------------------------------+
| "Aztalan" |
+---------------------------------------------------------+
출처
Oracle, The JSON Data Type, MySQL 8.0 Reference Manual
Oracle, String Data Types, MySQL 8.0 Reference Manual
Oracle, Date and Time Data Types, MySQL 8.0 Reference Manual
Oracle, Numeric Data Type Syntax, MySQL 8.0 Reference Manual
'DB > SQL' 카테고리의 다른 글
MySQL 쿼리 정리 (0) | 2021.10.10 |
---|---|
MYSQL SELECT 튜닝 (0) | 2021.10.10 |
MYSQL 실행계획 EXPLAIN (0) | 2021.10.08 |
MYSQL 힌트 (0) | 2021.10.07 |
ORACLE과 MYSQL의 차이점 (3) | 2021.10.07 |