본문 바로가기

SQL/Oracle

[Oracle] Oracle의 데이터 타입, 제약 조건

728x90

[Oracle의 데이터 타입]

숫자
number(정밀도|스케일)
정밀도 : 전체 자리수(1~38)
스케일 : 소수점이하 자리수

number(5) -> 전체 5자리 확보
number(5, 3) -> 전체 5자리 확보(정수 2자리, 소수점 3자리)
number(*, 3) -> 소수점 3자리 확보, 정수는 38자리 이내에서 자동할당

문자열
char
- 고정길이 문자열 취급
- 최대 2000byte(한글 약 666글자)
- 기억장소가 남으면 공백이 삽입
- 기억공간보다 큰 데이터는 저장 오류

char(10) -> '안녕' (6byte) -> 4byte는 공백으로 삽입(낭비)

varchar2
- 가변길이 문자열을 취급
- 최대 4000byte
- 기억장소가 남으면 시스템에 반납
- varchar와 같은 기능이나 오라클은 varchar2를 권강

날짜
date
- 기본 날짜형
- sysdate로 현재 날짜 정보를 저장

timestamp
- 시간대 정보와 정교한 시간정보를 필요할 때 사용
- 1970년 1월 1일 0시 0분 0초부터 ms로 증가하는 숫자

 

[Oracle의 제약 조건]

- not null
    해당 컬럼에 null값이 들어오지 못하도록 함
- unique
    null은 허용하지만 중복은 허용하지 않음
- primary key
    null과 중복을 저장하지 못함
    테이블에 저장된 데이터를 고유하게 식별하기 위한 키를 정의
    인덱싱 기능
    foreign key의 원본 테이블의 필드
- default
    null값이 입력될 경우 default로 정의된 값이 자동으로 입력
- foreign key
    primary key의 데이터를 참조
- check 
    컬럼에 정해진 데이터 조건을 지정하여 그 범위내에 데이터만 입력(mysql enum과 유사)

 

 

 

 

 

 

 

 

728x90