1. 테이블
1-1. 테이블 생성
CREATE TABLE [테이블명]
(
[컬럼명] NUMBER(10) NOT NULL
, [컬럼명] VARCHAR2(20)
);
1-1-1. 기본키 생성
- 테이블을 생성하면서 PK 지정 (컬럼 옆에 옵션 추가)
CREATE TABLE TAB1(
COL1 NUMBER NOT NULL PRIMARY KEY,
COL2 VARCHAR2(10)
);
- 테이블을 생성하면서 PK 지정 (하단에 제약 조건 추가)
CREATE TABLE TAB1(
COL1 NUMBER NOT NULL,
COL2 VARCHAR2(10),
CONSTRAINT PK_TAB1 PRIMARY KEY(COL1)
);
ALTER TABLE TAB1
ADD CONSTRAINT PK_TAB1 PRIMARY KEY(COL1);
1-1-2. 기본키 삭제
ALTER TABLE TAB1
DROP CONSTRAINT PK_TAB1;
1-1-3. 외래키 생성
CREATE TABLE TAB2 (
COL3 NUMBER NOT NULL PRIMARY KEY,
COL4 NUMBER NOT NULL,
COL5 VARCHAR2(10),
CONSTRAINT FK_TAB2 FOREIGN KEY(COL4) REFERENCES TAB1 (COL1)
);
ALTER TABLE TAB2
ADD CONSTRAINT FK_TAB2 FOREIGN KEY(COL4) REFERENCES TAB1 (COL1);
1-1-4. 외래키 삭제
ALTER TABLE TAB2
DROP CONSTRAINT FK_TAB2;
1-1-5. 제약조건 확인
SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME = '[테이블명]';
1-2. 컬럼 데이터 타입
1-2-1. 문자 데이터 타입
- CHAR(n) : 고정길이 문자(최대 2000byte, 디폴트값 1byte)
- VARCHAR2(n) : 가변길이 문자(최대 4000byte, 디폴트값 1byte)
- NCHAR(n) : 고정길이 유니코드 문자(최대 2000byte, 디폴트값 1byte, 다국어 입력 가능)
- NVARCHAR(n) : 가변길이 유니코드 문자(최대 2000byte, 디폴트값 1byte, 다국어 입력 가능)
- LONG : 최대 2GB 크기의 가변길이 문자형
- CLOB : 대용량 텍스트 데이터 타입(최대 4GB)
- NCLOB : 대용량 텍스트 유니코드 데이터 타입(최대 4GB)
1-2-2. 숫자 데이터 타입
- NUMBER(P,S) : 가변숫자(최대 22byte, P : 1~38, 디폴트값 38 / S : -84~127, 디폴트값 0)
- FLOAT(P) : NUMBER 의 하위 타입(최대 22byte, 이진수 기준, P : 1~128, 디폴트값 128)
- BINARY_FLOAT : 32비트 부동소수점 수(최대 4byte)
- BINARY_DOUBLE : 64비트 부동소수점 수(최대 8byte)
1-2-3. 날짜 데이터 타입
- DATE : 연, 월, 일, 시, 분, 초까지 입력(BC 4712년 1월 1일부터 9999년 12월 31일)
- TIMESTAMP : 연, 월, 일, 시, 분, 초 + 밀리초까지 입력 가능
1-2-4. LOB 데이터 타입
- 대용량 데이터를 저장할 수 있는 데이터 타입을 LOB(Large Object) 이라고 함
- CLOB : 문자형 대용량 객체 고정길이와 가변길이 문자집합 지원
- NCLOB : 유니코드를 지원하는 문자형 대용량 객체
- BLOB : 이진형 대용량 객체(그래픽, 이미지, 동영상 등의 데이터 저장 시 사용)
- BFILE : 대용량 이진 파일에 대한 위치, 이름 저장
1-3. 컬럼 제어
- 컬럼 추가 :
ALTER TABLE [테이블명] ADD([컬럼명] [데이터타입, 사이즈]);
- 컬럼 수정 :
ALTER TABLE [테이블명] MODIFY([컬럼명] [데이터타입, 사이즈]);
- 컬럼 삭제 :
ALTER TABLE [테이블명] DROP COLUMN [컬럼명];
- 컬럼명 변경 :
ALTER TABLE [테이블명] RENAME COLUMN [기존 컬럼명] TO [변경 컬럼명];