MySQL Data Type Mapping
MySQL | 설명 | Java |
TINYINT | 1바이트(-128~127) 이론으로 byte, Byte가 맞는데 현실적으로 Java boolean과 맵핑을 한다. | boolean, Boolean |
INT | 4바이트(-21억 ~ 21억) | int, Integer |
BIGINT, BIGINT UNSIGJNED |
8바이트 primary key Id의 타입으로 많이 사용한다. | long, Long |
FlOAT | 4바이트 - 부동 소수점 타입 - 실수 값을 대략적으로 표현 | float, Float |
DOUBLE | 8바이트 - 부동 소수점 타입 | double, Double |
DECIMAL(M,D) | (고정 소수텀 타입) 정확한 실수 값 표현하기 위해, M은 소수 부분을 포함한 실수 총 자릿수, D는 소수 부분의 자릿값 소수점이 있는 price 타입으로 많이 사용한다. | java.math.BigDecimal |
CHAR(M) | 0~255 바이트 저장 가능(영문자는 1글자당 1바이트) 고정 길의의 문자열(설정한 크기보다 데이터 크기가 작다면, 나머지 공간을 공백으로 채워 길이를 M과 같게 만든다.) |
String |
VARCHAR(M) | 0~65535 바이트 저장 가능 가변 길이의 문자열(저장된 문자열 길이만큼만 저장 공간을 사용한다.) |
String |
TEXT | TEXT는 VARCHAR와 비슷하지만 기본 값을 가질 수 없다. | String |
BINARY, VARBINARY, BLOB | GIF같은 이미지 바이트 저장 | byte[] |
DATE | 날짜를 저장하는 타입 '1000-01-01' ~ '9999-12-31' (3 Byte) |
Java.sql.Date |
DATETIME | 날짜와 시간을 함께 저장할 수 있는 타입 1000-01-01 00:00:00' ~ '9999-12-31 23:59:59’ (8 Byte) |
Java.sql.Timestamp |
TIME | 시간을 저장할 수 있는 타입 '-838:59:59' ~ '838:59:59’ (3 Byte) |
Java.sql.Time |
TIMESTAMP | 날짜와 시간을 나타내는 타임스탬프를 저장할 수 있는 타입 1970-01-01 00:00:01' ~ '2038-01-19 03:14:07’ (4 Byte) |
Java.sql.Timestamp |
YEAR | YEAR는 연도를 저장할 수 있는 타입 '1901 ~ 2155' (1 Byte) |
1901 ~ 2155 (1 Byte) |
MSSQL Data Type Mapping
SQL Server Types | JDBC Types (java.sql.Types) | Java Language Types |
bigint | BIGINT | long |
binary | BINARY | byte[] |
bit | BIT | boolean |
char | CHAR | String |
date | DATE | java.sql.Date |
datetime3 | TIMESTAMP | java.sql.Timestamp |
datetime2 | TIMESTAMP | java.sql.Timestamp |
datetimeoffset2 | microsoft.sql.Types.DATETIMEOFFSET | microsoft.sql.DateTimeOffset |
decimal | DECIMAL | java.math.BigDecimal |
float | DOUBLE | double |
image | LONGVARBINARY | byte[] |
int | INTEGER | int |
money | DECIMAL | java.math.BigDecimal |
nchar | CHARNCHAR (Java SE 6.0) | String |
ntext | LONGVARCHARLONGNVARCHAR (Java SE 6.0) | String |
numeric | NUMERIC | java.math.BigDecimal |
nvarchar | VARCHARNVARCHAR (Java SE 6.0) | String |
nvarchar(max) | VARCHARNVARCHAR (Java SE 6.0) | String |
real | REAL | float |
smalldatetime | TIMESTAMP | java.sql.Timestamp |
smallint | SMALLINT | short |
smallmoney | DECIMAL | java.math.BigDecimal |
text | LONGVARCHAR | String |
time | TIME1 | java.sql.Time1 |
timestamp | BINARY | byte[] |
tinyint | TINYINT | short |
udt | VARBINARY | byte[] |
uniqueidentifier | CHAR | String |
varbinary | VARBINARY | byte[] |
varbinary(max) | VARBINARY | byte[] |
varchar | VARCHAR | String |
sqlvariant | microsoft.sql.Types.SQL_VARIANT | Object |
geometry | VARBINARY | byte[] |
geography | VARBINARY | byte[] |
Reference
https://gorokke.tistory.com/190
https://dev.mysql.com/doc/ndbapi/en/mccj-using-clusterj-mappings.html
'Web Sever 개발과 CS 기초 > DB 지식' 카테고리의 다른 글
DB OLTP와 OLAP 차이 (0) | 2022.11.26 |
---|---|
Read 시도 후 없으면 Insert , 있으면 Update 쿼리를 만들면 안 되는 이유 +Upsert 쿼리 알아보기 (0) | 2022.10.23 |
DB Lock에 대한 이해와 MySQL Lock의 특징 (0) | 2022.10.17 |
정규화(1,2,3,BNCF) 쉽게 이해하기 (0) | 2022.10.01 |
DB Isolation Level 격리 수준 이해하기 (0) | 2022.10.01 |