나를 기록하다
article thumbnail
Published 2024. 3. 21. 08:49
[TIL-48/240320] DDL & DML TIL
반응형

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)  
 

https://prao.tistory.com/entry/%EC%89%BD%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-5-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EB%8F%99%EA%B8%B0%ED%99%94

 

[쉽게 배우는 운영체제] 5. 프로세스 동기화

프로세스 간 통신 프로세스 간 통신의 개념 프로세스(또는 스레드)는 독립적으로 실행 협업 또는 데이터 병렬 처리를 위해서는 데이터를 주고 받아야 함 스레드: 하나의 프로세스 내에서 자원을

prao.tistory.com

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
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...