DataBase/Oracle
3. DDL(Data Definition Language) - Create
kade__
2021. 6. 10. 20:12
DDL 중 하나인 Create를 사용해 보자
※SQL은 코드 작성 시 대소문자를 구분하지 않습니다.
create table [테이블 이름] (
[컬럼이름] [Type(Size)] [세부속성] [기본값] [,...],
[constraint] [기본키 설정명] primary key (컬럼 이름[, 컬럼이름...]//하나만 사용해도 됨),
[constraint] [외래키 설정명] foreign key (컬럼 이름[, 컬럼이름...]//하나만 사용해도 됨)
references [테이블 이름] ([컬럼 이름][, 컬럼이름...]//하나만 사용해도 됨)
);
primary key의 경우 하나의 칼럼을 입력하면 입력한 칼럼이 PK가 되고 여러 개를 입력하면 여러 개가 하나로 묶여 PK가 된다. FK 역시 같다.
하지만 primary key는 테이블 내에 하나만 존재해야 하므로 여러번 설정을 못해주는 반면 FK는 여러 테이블에서 참조를 받아올 수 있다.
constraint란 제약조건을 이야기 한다.
설정 명이라는 부분이 있는데 key를 정한 곳의 변수라고 생각을 하면 된다.
후에 작성할 포스트에 나오겠지만 테이블 간 제약을 해제할 때 사용될 수 있는 게 설정 명이며 다른 설정명과 중복될 수 없다. 중복되지 않게 네이밍을 하는 팁은 하단에 사용 예제에 작성해놓겠다
칼럼의 이름을 작성 시 주의할 사항이 있다. 띄어쓰기는 허용되지 않으며 단어와 단어 사이에 공백 대신 _ 언더바를 이용한다
create table test (
test_id char(4),
test_name varchar2(30),
test_job varchar2(30),
con_id number(3),
CONSTRAINT pk_test primary key(test_id),
constraint fk_test foreign key (test_id) references result(result_id)
);
//기본키, 외래키 설정명을 중복되지 않게 하려면 위의 설정명과 같이 PK_[해당 테이블명]
//으로 표기하면 중복될 일이 없다. 테이블은 중복이 될 수 없기 때문이다.