[Oracle] CREATE TABLE, Constraint
1. CREATE TABLE
- 테이블 생성
CREATE TABLE 테이블명 (
COLUMN명 데이터타입(크기) 제약조건,
COLUMN명 데이터타입(크기) 제약조건
)
CREATE TABLE PERSON_TABLE (
NAME VARCHAR2(8),
GENDER CHAR(2),
AGE NUMBER(5),
PHONE CHAR(13)
)
- 자주 쓰는 데이터 타입
- CHAR : 주로 고정 크기일 때 사용
- VARCHAR2 : 주로 가벼 크기일 때 사용
- NUMBER : 숫자
- DATE : 날짜
2. Constraint
- 자신이 얻고자 하는 값만 받을 수 있도록 설정하는 것
- NOT NULL
- 해당 컬럼 안에 NULL 값이 들어올 수 없음
에러 발생!
- PRIMARY KEY
- 기본키
- 테이블의 각 행들을 식별하는 기능
- NULL과 중복 값을 허용하지 않음
ERROR!
- FOREIGN KEY
- 외래키
- 다른 테이블의 키를 가져와 해당 테이블의 행을 식별
- NULL과 중복 값 허용
CREATE TABLE PK_TABLE (
key varchar2(10),
// CONSTRAINT / 명칭 / PRIMARY KEY / 해당 테이블 KEY COLUMN 명
CONSTRAINT PK_COLUMN PRIMARY KEY (key)
); // 다른 테이블에서 FK로 가져다 쓸 수 있음
CREATE TABLE FK_TABLE (
val varchar2(10),
key varchar2(10),
CONSTRAINT FK_COLUMN
FOREIGN KEY (key) // FK_TABLE의 key를 FOREIGN KEY로 사용
REFERENCES PK_TABLE(key) // PK_TAbLE의 PRIMARY KEY인 key를 가져옴
);
INSERT INTO PK_TABLE(key) VALUES('PK_VAL'); // PRIMARY KEY를 'PK_VAL'로 삽입하면
INSERT INTO FK_TABLE(val,key) VALUES('TEST_VAL','PK_VAL');
INSERT INTO FK_TABLE(val) VALUES('TEST_VAL'); // FK는 'PK_VAL'만 사용 가능
SELECT * FROM FK_TABLE
- UNIQUE
- NULL은 허용, 중복 값은 허용하지 않음
- CHECK
- 특정 값만 입력할 수 있도록 범위를 설정하는 것
29 > 19 이므로 OK
17 < 19 이므로 ERROR!
댓글남기기