1. 데이터베이스의 데이터 유형

데이터 유형은 테이블에 저장할 데이터의 형식과 속성을 정의합니다. 잘못된 유형의 데이터를 삽입하려고 하면 데이터베이스는 오류를 발생시킵니다.

데이터 유형의 특징

  1. 숫자형:
    • 정수와 실수 데이터를 저장.
    • 예: NUMERIC, DECIMAL, SMALLINT, BIGINT, FLOAT, NUMBER.
  2. 문자형:
    • 텍스트 데이터를 저장.
    • 예: CHAR, VARCHAR, VARCHAR2.
  3. 날짜/시간형:
    • 날짜와 시간 데이터를 저장.
    • 예: DATE, DATETIME, TIMESTAMP.
  4. 기타:
    • 이진 데이터나 특수 데이터를 저장.
    • 예: BLOB, CLOB, JSON.

2. 주요 데이터 유형 설명

데이터 유형설명

CHAR(s) - 고정 길이 문자열
- 길이가 부족하면 공백으로 채움
- 최대 길이: Oracle 2000바이트, SQL Server 8000바이트
VARCHAR(2) - 가변 길이 문자열
- 실제 데이터 크기만큼 저장
- 최대 길이: Oracle 4000바이트, SQL Server 8000바이트
NUMERIC - 정수, 실수와 같은 숫자 데이터
- Oracle에서는 NUMBER로 표현
- 예: NUMBER(8, 2) (정수 6자리, 소수점 2자리)
DATE - 날짜와 시간 데이터
- Oracle: 1초 단위 관리
- SQL Server: 3.33밀리초 단위 관리

3. CHAR와 VARCHAR (VARCHAR2)의 비교

1) 저장 방식

  • CHAR:
    • 고정 길이 문자열.
    • 선언된 길이에 미달하는 데이터는 공백으로 채워짐.
    • 예: CHAR(5)에 'A'를 저장하면 실제 데이터는 'A '(공백 포함).
    • 적합한 경우: 고정 길이 데이터(예: 사번, 우편번호).
  • VARCHAR (또는 VARCHAR2):
    • 가변 길이 문자열.
    • 선언된 길이에 미달해도 공백을 추가하지 않음.
    • 예: VARCHAR(5)에 'A'를 저장하면 실제 데이터는 'A'.
    • 적합한 경우: 길이가 변할 수 있는 데이터(예: 이름, 주소).

2) 비교 방식

  • CHAR:
    • 공백을 포함하여 비교.
    • 예: 'AA'와 'AA '는 동일('AA ' == 'AA ').
  • VARCHAR:
    • 공백을 다른 문자로 간주하여 비교.
    • 예: 'AA'와 'AA '는 다름.

3) 저장 공간 효율성

  • CHAR:
    • 선언된 길이만큼 공간을 차지.
    • 길이가 고정된 데이터에 적합.
  • VARCHAR:
    • 데이터의 실제 길이만큼 공간을 사용.
    • 저장 공간 효율성이 높음.

4. 사용 사례

데이터 유형적합한 데이터

CHAR - 고정 길이 데이터 (사번, 우편번호, 주민등록번호 등)
VARCHAR - 가변 길이 데이터 (이름, 주소, 이메일 등)

5. 예제 코드

1) CHAR

CREATE TABLE fixed_data (
    id CHAR(10),  -- 고정 길이 10
    code CHAR(5)  -- 고정 길이 5
);

2) VARCHAR

CREATE TABLE variable_data (
    name VARCHAR(50),  -- 최대 50자
    address VARCHAR(100)  -- 최대 100자
);

3) 데이터 비교

-- CHAR 비교
SELECT * FROM fixed_data WHERE id = '12345    '; -- 공백 포함해 동일하게 판단

-- VARCHAR 비교
SELECT * FROM variable_data WHERE name = 'John '; -- 공백 포함 시 다른 값으로 판단

6. 데이터 유형 선택 시 고려사항

  1. 데이터 길이:
    • 고정 길이 → CHAR.
    • 가변 길이 → VARCHAR.
  2. 저장 공간:
    • 저장 공간 최적화가 필요하면 VARCHAR 추천.
  3. 데이터 비교:
    • 공백 무시 → CHAR.
    • 공백 고려 → VARCHAR.

요약

  • CHAR: 고정 길이 문자열, 저장 공간 낭비 가능, 공백 포함 비교.
  • VARCHAR: 가변 길이 문자열, 저장 공간 효율적, 공백은 다른 문자로 취급.
  • 데이터의 특성에 따라 적합한 유형을 선택하는 것이 중요합니다.

+ Recent posts