Oracle Table과 기본 데이터 타입
데이터베이스 객체의 종류
데이터베이스 객체 | 설명 |
TABLE | 데이터를 담고 있는 객체 |
VIEW | 하나 이상의 테이블을 연결해서 마치 테이블인 것처럼 사용하는 객체 |
INDEX | 테이블에 있는 데이터를 빠르게 찾기 위한 객체 |
SYNONYM | 데이터베이스 객체에 대한 별칭을 부여한 객체 |
SEQUENCE | 일련번호 채번을 할 때 사용하는 객체 |
FUNCTION | 특정 연산을 하고 값을 반환하는 객체 |
PROCEDURE | 함수와 비슷하지만 값을 반환하지는 않는 객체 |
PACKAGE | 용도에 맞게 함수나 프로시저를 하나로 묶어놓은 객체 |
● TABLE
– 데이터를 넣고 수정하고 삭제하는, 데이터를 담고 있는 가장 기본적인 객체. ROW (행)과 COLUMN (열)으로 구성된 2차원 형태(표)의 객체로 우리가 자주쓰는 엑셀과 비슷한 구조라고 보면 이해가 쉽습니다.
– TABLE 생성은 CREATE문으로 생성할 수 있는데, 기본 구문은 아래와 같습니다.
CREATE TABLE [스키마.]테이블명 ( 컬럼1 컬럼1_데이터타입 [NULL, NOT NULL], 컬럼2 컬럼2_데이터타입 [NULL, NOT NULL], … ) [TABLESPACE 테이블스페이스명]; |
스키마명은 생략이 가능하며, 생략하게되면 현재 자신이 로그인한 스키마 이름으로 생성됩니다.
TABLESPACE 구문도 생략이 가능한데, 해당 사용자의 디폴트 TABLESPACE에 생성됩니다.
데이터 타입
– 데이터 타입이란 테이블의 컬럼값의 속성을 이야기 합니다. 데이터가 테이블에 Insert 될때, 각각의 Row값는 속성을 가지고 그에 맞는 타입으로으로 입력이 됩니다.
● 문자 데이터 타입
데이터 타입 | 설명 |
CHAR(크기[BYTE|CHAR]) | 고정길이 문자, 최대 2000byte, 디폴트 값 1byte |
VARCHAR2(크기[BYTE|CHAR]) | 고정길이 문자, 최대 4000byte, 디폴트 값 1byte |
NCHAR (크기) | 고정길이 유니코드 문자 (다국어 입력 가능), 최대 2000BYTE, 디폴트 값 1byte |
NVARCHAR2 (크기) | 고정길이 유니코드 문자 (다국어 입력 가능), 최대 4000BYTE, 디폴트 값 1byte |
LONG | 최대 2GB 크기의 가변길이 문자형, 잘 사용하지 않음 |
● 숫자 데이터 타입
데이터 타입 | 설명 |
NUMBER[(p,[s])] | 가변숫자, p(1~38, 디폴트 38) s(-84~127, 디폴트 0) 십진수 기준, 최대 22byte |
FLOAT[(p)] | NUMBER의 하위 타입, p는 1~128, 디폴트 128, 이진수 기준, 최대 22byte |
BINARY_FLOAT | 32비트 부동소수점 수, 최대 4byte |
BINARY_DOUBLE | 64비트 부동소수점 수, 최대 8byte |
– 4가지가 있지만 주로 NUMBER를 많이 사용합니다. 다른 DBMS는 INTEGER와 같은 정수형, DECIMAL과 같은 실수형을 제공합니다. 오라클도 INTEGER과 DECIMAL로 생성이 가능 하지만, 내부적으로는 NUMBER 형으로 변환되어 생성됩니다.
● 날짜 데이터 타입
데이터 타입 | 설명 |
DATE | BC 4712년 1월 1일부터 9999년 12월 31일,
연,월,일,시,분,초까지 입력가능 |
TIMESTAMP[(fractional_seconds_precision)] | 연도, 월, 일, 시, 분, 초는 물론 밀리초 까지 입력 가능
fractional_seconds_precision은 0~9까지 입력할 수 있고 디폴트는 6 |
● LOB 데이터 타입 (Large OBject의 약자)
데이터 타입 | 설명 |
CLOB | 문자형 대용량 객체. 고정길이와 가변길이 문자 집합 지원,
최대크기 (4GB-1)x(데이터베이스 블록 사이즈) |
NCLOB | 유니코드(다국어 지원)를 포함한 문자형 대용량 객체.
최대크기 (4GB-1)x(데이터베이스 블록 사이즈) |
BLOB | 이진형 대용량 객체, 최대 크기 (4GB-1)x(데이터베이스 블록 사이즈) |
BFILE | 대용량 이진 파일에 대한 로케이터(위치, 이름)저장. 최대 저장 크기는 4GB |
● NULL
– NULL은 ‘값이 없음’을 의미하면 테이블을 생성할 때 컬럼 속성에 기술합니다. 디폴트 값이 NULL이므로 별도 지정 없으면 해당 컬럼은 NULL을 허용합니다. NOT NULL로 명시한 컬럼에 데이터를 넣지 않으면 해당 로우 INSERT가 불가능합니다.
최신 댓글