테이블
컬럼
데이터 유형
데이터 유형 | 설명 | 예시 |
---|---|---|
NUMBER | 정수 및 실수 저장 (크기 지정 가능) 예: NUMBER(5), NUMBER(10,2) |
12345, 999.99 |
VARCHAR2 | 가변 길이 문자열 (최대 4000바이트) 반드시 크기 지정 필요, oracle은 파라미터(MAX_STRING_SIZE=EXTENDED)수정시 최대 32K(327267) 바이트까지 가능 |
'Hello', 'Oracle' |
CHAR | 고정 길이 문자열 (최대 2000바이트) 남는 공간은 공백으로 채움 |
'ABC'(CHAR(5) → 'ABC ') |
DATE | 날짜+시간 저장 (년월일 시분초) | TO_DATE('2023-01-01', 'YYYY-MM-DD') |
TIMESTAMP | DATE보다 정밀한 시간 (밀리초 단위) | SYSTIMESTAMP |
CLOB | 대용량 텍스트 저장 (최대 4GB) | 긴 문서, XML 데이터 |
BLOB | 이진 데이터 저장 (이미지, 파일 등) | PDF, JPEG 파일 |
BOOLEAN | PL/SQL에서만 사용 가능 (TRUE/FALSE/NULL) | TRUE, FALSE |
숫자형
- NUMBER(5): 5자리 정수 (예: 12345) - NUMBER(6,2): 전체 6자리 중 소수점 2자리 (예: 1234.56) - NUMBER[(p,[,s])] 정밀도(Precision) p, 규모(Scale) s. 정밀도 p는 1에서 38까지 가능. 스케일 s는 -84에서 127까지 가능. 정밀도와 스케일은 모두 십진수입니다. A NUMBER값은 1 ~ 22 바이트가 필요합니다. - FLOAT[(p)] : 정밀도를 갖는 데이터 유형 p. A FLOAT값은 1 ~ 22 바이트가 필요합니다. - BINARY_FLOAT : (oracle) 32비트 플로팅 포인트 번호. 이 데이터 유형에는 4 바이트가 필요합니다. - BINARY_DOUBLE : (oracle) 64비트 플로팅 포인트 번호. 이 데이터 유형에는 8 바이트가 필요합니다.
문자형
- CHAR(10)에 'ABC' 저장 → 'ABC ' (공백 7개 추가) - VARCHAR2(10)에 'ABC' 저장 → 'ABC' (공백 없음) - NVARCHAR2(10): (oracle) 유니코드 문자 , 문자열
날짜형 함수
- DATE : 유효한 날짜 범위는 1월 1, 4712 BC, 12월 31, 9999 AD. 기본 형식은 NLS_DATE_FORMAT파라미터에 의해 명시적으로 결정됩니다. 암시적으로 NLS_TERRITORY매개 변수. 크기는 7 바이트로 고정됩니다. 이 데이터 유형에는 datetime 필드가 포함되어 있습니다. YEAR, MONTH, DAY, HOUR, MINUTE, 및 SECOND. 분수 초 또는 시간대가 없습니다.
- TIMESTAMP[(fractional_seconds_precision)] : 날짜의 연도, 월 및 요일 값뿐만 아니라 시간, 분 및 두 번째 시간 값, fractional_seconds_precision는 분수 부분의 자릿수입니다. SECOND datetime 필드. 수락된 값 fractional_seconds_precision0 ~ 9 입니다. 기본값은 6입니다. 기본 형식은 NLS_TIMESTAMP_FORMAT파라미터 또는 암시적으로 by the NLS_TERRITORY매개 변수에 의해 명시적으로 결정됩니다. 크기는 정밀도에 따라 7 또는 11 바이트입니다. 이 데이터 유형에는 datetime 필드가 포함되어 있습니다. YEAR, MONTH, DAY, HOUR, MINUTE, 및 SECOND. 분수 초가 포함되어 있지만 시간대가 없습니다.
- TIMESTAMP[(fractional_seconds_precision)] WITHTIMEZONE : TIMESTAMP뿐만 아니라 시간대 변위 값, 여기서 fractional_seconds_precision는 분수 부분의 자릿수입니다. 허용되는 값은 0 ~ 9입니다. 기본값은 6입니다. 크기는 13 바이트로 고정되어 있습니다. 이 데이터 유형에는 datetime 필드가 포함되어 있습니다. YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_HOUR, 및 TIMEZONE_MINUTE. 분수 초와 명시적인 시간대가 있습니다. - TIMESTAMP[(fractional_seconds_precision)] WITHLOCALTIMEZONE : 크기는 정밀도에 따라 7 또는 11 바이트입니다. - INTERVALYEAR[(year_precision)] TOMONTH :몇 년과 몇 달 동안 일정 기간을 저장합니다. year_precision의 허용되는 값은 0 ~ 9입니다. 기본값은 2.입니다. 크기는 5 바이트로 고정됩니다. - INTERVALDAY[(day_precision)] TOSECOND[(fractional_seconds_precision)] : 일, 시간, 분 및 초 단위로 시간, 저장, 여기서 day_precision의 최대 숫자입니다. 허용되는 값은 0 ~ 9입니다. 기본값은 2입니다. fractional_seconds_precision는 분수 부분의 자릿수입니다. SECOND필드. 허용되는 값은 0 ~ 9입니다. 기본값은 6입니다. 크기는 11 바이트로 고정됩니다.
SELECT TO_CHAR(SYSDATE, 'YYYY"년" MM"월" DD"일"') FROM dual; -- 결과: 2023년 07월 20일
LOB 유형
- CLOB: 텍스트 기반 대용량 데이터 - BLOB: 이미지/동영상 등 바이너리 데이터
LONG 과 RAW 유형
- LONG : 최대 2기가바이트(231-1바이트)의 가변 길이 문자 데이터입니다. 이전 버전과의 호환성을 위해 제공됩니다. - RAW(size) : 길이의 원시 바이너리 데이터