반응형
Data Type(자료형)
숫자 자료형(Numeric Data Types)
문자 자료형(String Data Types)
CHAR vs VARCHAR
CHAR(10) : 10자리만큼 저장이 가능하고 비어있는 자리는 못 쓰는 공간
VARCHAR(10) : 10자리만큼 저장이 가능하고 비어있는 자리는 반환
날짜 자료형(Date and Time Data Types)
Binary 및 VARBINARY형
- BINARY 및 VARBINARY 타입은 CHAR 및 VARCHAR 형과 유사하지만, 비 바이너리 문자열이 아닌 바이너리 문자열을 저장
- 즉, 문자열이 아닌 바이트의 문자열이 포함되어 있음
→ 이것은 그들에게 문자 세트가 없고, 정렬 및 비교는 값 안의 바이트의 수치에 따라 의미 - CHAR 및 VARCHAR
- 공통점 : BINARY 및 VARBINARY 에서 허용되는 최대 길이가 같음
- 차이점 : BINARY 및 VARBINARY 길이가 문자가 아닌 바이트 단위로 표현
- BINARY 및 VARBINARY 데이터 유형은 CHAR BINARY 및 VARCHAR BINARY 데이터 형과는 다름
- 후자의 형태는 BINARY 속성으로 컬럼이 바이너리 문자열 컬럼으로 취급되는 것은 아님
- 대신 이로 인해 열 문자 집합의 이진 데이터 정렬이 사용된 컬럼 자체는 비 바이너리 문자열이 저장됨
- (예시) CHAR(5) BINARY의 기본 문자 집합이 latin1 이라면,
CHAR(5) CHARACTER SET latin1 COLLATE latin1_bin 로 처리
→ 문자 집합 및 데이터 정렬이 없는 5 바이트의 이진 문자열을 포함하는 BINARY(5) 과는 다름
- 엄격한 SQL 모드가 유효하지 않은 경우 BINARY 또는 VARBINARY 컬럼에 최대 길이를 초과하는 값을 지정하면 그 값은 컬럼의 최대 길이에 맞게 절단되고 경고 메시지가 표시됩
- 값을 자르면 엄격한 SQL 모드를 사용하면 경고가 아닌 오류 발생, 그 값의 삽입을 억제 가능
- BINARY 값은 저장되는 특정 길이까지 오른쪽 패드 값으로 채워짐 → 패드 값은 0x00 (0 바이트)
- 값은 삽입시에는 오른쪽이 0x00 으로 채워 선택할 때 후속 바이트는 제거되지 않음
- 모든 바이트는 ORDER BY 및 DISTINCT 작업을 포함 비교에서 의미가 있다
→ 0x00 바이트와 공간을 비교 시 0x00 < 공간 - (예시) BINARY(3) 컬럼의 경우
- 'a ' 삽입 → 'a \0'
- 'a\0' 삽입 → 'a\0\0'
- 삽입 된 두 값은 변경되지 않음
- 후속 패드 바이트가 제거 또는 비교에서 무시되는 경우 고유 한 값을 필요로하는 인덱스 컬럼에 포함되어 있으면 후속 패드 바이트의 개수 만 다른 컬럼 값에 삽입 중복 키 오류가 발생
- (예시) 테이블에 'a' 가 포함되어있는 경우, 'a\0' 을 저장하려고하면 중복 키 오류가 발생
TYPE
|
사용되는 바이트
|
예제
|
BINARY(n) 혹은 BYTE(n)
|
정확히 n (<=255)
|
CHAR이지만 바이너리 데이터를 가짐
|
VARBINARY(n)
|
최대 n 까지(<=65535)
|
VARCHAR이지만 바이너리 데이터를 가짐
|
TEXT와 VARCHAR 데이터 타입
- TEXT 필드는 기본 값을 가질 수 없다 → MySQL은 TEXT 열의 처음 n개 문자만 인덱싱 가능
→ 만약 전체 내용을 검색할 때는 VARCHAR이 더 알맞고 빠름
TYPE
|
사용되는 바이트
|
속성
|
TINYTEXT(n)
|
최대 n (<=255)
|
문자열로 취급
|
TEXT(n)
|
최대 n (<=65,535)
|
문자열로 취급
|
MEDIUMTEXT(n)
|
최대 n (<=16,777,215)
|
문자열로 취급
|
LONGTEXT(n)
|
최대 n (<=4,294,967,295)
|
문자열로 취급
|
BLOB 데이터 타입
- BLOB(Binary Large OBject)는 65,535 바이트를 넘는 바이너리 데이터에 유용, 기본값을 가질 수 없음
TYPE
|
사용되는 바이트
|
속성
|
TINYBLOB(n)
|
최대 n (<=255)
|
바이너리 데이터로 취급
|
BLOB(n)
|
최대 n (<=65535)
|
바이너리 데이터로 취급
|
MEDIUMBLOB(n)
|
최대 n (<=16777215)
|
바이너리 데이터로 취급
|
LONGBLOB(n)
|
최대 n (<=4294967295)
|
바이너리 데이터로 취급
|
숫자형 데이터 타입
TYPE
|
사용되는 바이트
|
최소 값
(signed/unsigned) |
최대 값
(signed/unsigned) |
TINYINT
|
1
|
-128
0 |
127
255 |
SMALLINT
|
2
|
-32768
0 |
32767
65535 |
MEDIUMINT
|
3
|
-8388608
0 |
8388607
16777215 |
INT or INTEGER
|
4
|
-2147483648
0 |
2147483647
4294967295 |
BIGINT
|
8
|
-9223372036854775808
0 |
9223372036854775807
18446744073709551615 |
FLOAT
|
4
|
-3.40E+45
(no unsigned) |
3.40E+45
(no unsigned) |
DOUBLE or REAL
|
8
|
-1.7976E+320
(no unsigned) |
1.7976E+320
(no unsigned) |
DB 수업을 들으며 실습을 통해 복습했고, CS로 운영체제 공부를 하여 5장을 마무리하였다. 이제야 책의 반을 읽었는데 좀더 속도를 붙여서 3월 내에 끝낼 수 있도록 할 계획이다.
반응형
'TIL' 카테고리의 다른 글
[TIL-50/240322] JDBC (0) | 2024.03.23 |
---|---|
[TIL-49/240321] Join & SubQuery & Modeling (0) | 2024.03.22 |
[TIL-47/240319] MySQL, SELECT (0) | 2024.03.20 |
[TIL-46/240318] File Upload & Download (1) | 2024.03.19 |
[TIL-45/240315] MVC 패턴 (0) | 2024.03.16 |