MySQL 데이터 유형


MySQL 데이터 유형

MySQL에 정의된 데이터 필드 유형은 데이터베이스 최적화에 매우 중요합니다.

MySQL은 다양한 유형을 지원하는데, 이는 대략 숫자, 날짜/시간, 문자열(문자) 유형의 세 가지 범주로 나눌 수 있습니다.

mysql의 특정 데이터 유형에 대한 자세한 내용은 비디오 튜토리얼을 참조하십시오: MySQL 정식 개발 가이드(튜토리얼)

숫자 유형

MySQL은 모든 표준 SQL 숫자 데이터 유형을 지원합니다.

이러한 유형에는 엄격한 숫자 데이터 유형(INTEGER, SMALLINT, DECIMAL 및 NUMERIC)과 대략적인 숫자 데이터 유형(FLOAT, REAL 및 DOUBLE PRECISION)이 포함됩니다.

INT 키워드는 INTEGER의 동의어이고, DEC 키워드는 DECIMAL의 동의어입니다.

BIT 데이터 유형은 비트 필드 값을 저장하고 MyISAM, MEMORY, InnoDB 및 BDB 테이블을 지원합니다.

SQL 표준의 확장으로 MySQL은 정수 유형 TINYINT, MEDIUMINT 및 BIGINT도 지원합니다. 다음 표는 각 정수 유형에 필요한 저장 공간과 범위를 보여줍니다.

유형크기범위(부호 있음) 범위(부호 없음) 용도
TINYINT1바이트(-128, 127)(0, 255) 작은 정수 값
SMALLINT2바이트(-32 768, 32 767)(0, 65 535 ) 큰 정수 값
MEDIUMINT3바이트(-8 388 608, 8 388 607)( 0,16 777 215)큰 정수 값
INT 또는 INTEGER4바이트 (-2 147 483 648 , 2 147 483 647)(0, 4 294 967 295)큰 정수 값
BIGINT8바이트 (-9,223,372,036,854,775,808, 9 223 372 036 854 775 807)(0, 18 446 744 073 709 551 615)대박 정수값
FLOAT4바이트(-3.402 823 466 E+38, -1.175 494 351 E-38), 0, (1.175 494 351 E-38, 3.402 823 466 351 E+38)0, (1.175 494 351 E-38, 3.402 823 466 E+38)단정밀도
부동 소수점 값
DOUBLE8바이트(-1.797 693 134 862 315 7 E+308, -2.225 073 858 507 201 4 E -308), 0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) 0, (2.225 073 858 507 201 4 E-308, 1.797 693 1 34 862 315 7 E+308)배정밀도
부동 소수점 값
DECIMAL, DECIMAL(M,D)인 경우, M>인 경우 ;D는 M+2, 그렇지 않으면 D+2M과 D의 값에 따라 다름M과 D의 값에 따라소수 값

날짜 및 시간 유형

시간 값을 나타내는 날짜 및 시간 유형은 DATETIME, DATE, TIMESTAMP, TIME 및 YEAR입니다.

각 시간 유형에는 유효한 값 범위와 "0" 값이 있습니다. "0" 값은 MySQL이 표현할 수 없는 잘못된 값을 지정할 때 사용됩니다.

TIMESTAMP 유형에는 독자적인 자동 업데이트 기능이 있는데 이에 대해서는 나중에 설명하겠습니다.

유형크기
类型大小
(字节)
范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP4

1970-01-01 00:00:00/2038

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS混合日期和时间值,时间戳
(바이트)
범위형식 < /th>용도
날짜3 1000-01-01/9999-12-31YYYY-MM-DD 날짜 값
시간3'- 838 :59:59'/'838:59:59'HH:MM:SS시간 값 또는 기간
연도1< /td >1901/2155YYYY연도 값
날짜81000-01-01 00:00:00/9999 -12 -31 23:59:59YYYY-MM-DD HH:MM:SS 혼합된 날짜 및 시간 값
타임스탬프4< /td ><🎜>1970-01-01 00:00:00/2038<🎜><🎜>시간 종료 <🎜>2147483647<🎜>초, 베이징 시간 <🎜>2038-1-19 11:14:07<🎜>, GMT 2038년 1월 19일 오전 3:14:07<🎜>YYYYMMDD HHMMSS날짜 및 시간 값 혼합, 타임스탬프


문자열 유형

문자열 유형은 CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM 및 세트. 이 섹션에서는 이러한 유형의 작동 방식과 쿼리에서 이를 사용하는 방법을 설명합니다.



类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据


CHAR와 VARCHAR 유형은 유사하지만 저장하고 검색하는 방식이 다릅니다. 또한 최대 길이와 후행 공백이 유지되는지 여부도 다릅니다. 저장 또는 검색 중에는 대소문자 변환이 수행되지 않습니다.

BINARY 및 VARBINARY는 이진이 아닌 문자열 대신 이진 문자열을 포함한다는 점을 제외하면 CHAR 및 VARCHAR과 유사합니다. 즉, 문자열이 아닌 바이트 문자열을 포함합니다. 이는 문자 세트가 없으며 정렬 및 비교가 열 값 바이트의 숫자 값을 기반으로 함을 의미합니다.

BLOB는 가변적인 양의 데이터를 담을 수 있는 이진 대형 객체입니다. BLOB 유형에는 TINYBLOB, BLOB, MEDIUMBLOB 및 LONGBLOB의 4가지가 있습니다. 수용할 수 있는 저장 범위가 다릅니다.

TINYTEXT, TEXT, MEDIUMTEXT 및 LONGTEXT의 4가지 TEXT 유형이 있습니다. 해당하는 4개의 BLOB 유형은 실제 상황에 따라 선택할 수 있는 최대 저장 길이가 서로 다릅니다.

추가 튜토리얼 권장 사항: MySQL 비디오 튜토리얼