공부기록장

[SQL] 테이블 생성 시 제약조건(NOT NULL, PRIMARY KEY, FOREIGN KEY) 본문

▶ study/SQL

[SQL] 테이블 생성 시 제약조건(NOT NULL, PRIMARY KEY, FOREIGN KEY)

친절한 3 2021. 4. 13. 18:07

제약조건이란?

제약조건은 간단히 말해 테이블에 여러 규칙을 적용해 놓는 것을 의미한다. 이런 제약 조건들을 통해서 테이블의 이상현상 방지와 효율적인 테이블 사용을 할 수 있다.


NOT NULL 제약조건

create table Employees(
	id number(4),
	name varchar(25) not null,
	salary number(8,2),
	pct number(2,2),
   	department_id number(4),
	hire_date date constraint emp_hire_date_nn not null);

name, hire_date에 대한 not null 제약조건을 걸어준 코드이다.

여기서 두 컬럼의 차이점은 제약조건의 별칭의 유무이다.

name은 지정해주지 않았고, hire_date는 emp_hire_date_nn로 지정을 해준 것을 확인할 수 있다.


PRIMARY KEY 제약조건

create table departments(
	department_id number(4),
	dept_name varchar(30),
	manager_id number(6),
	location_id number(4),
	constraint dept_id_pk primary key(department_id)
);

departments_id에 대해서 primary key로 지정해준 것을 확인할 수 있다.

create table departments(
	department_id number(4) constraint dept_id_pk primary key,
	dept_name varchar(30),
	manager_id number(6),
	location_id number(4)
);

위에서 명시한 코드와 아래에서 명시한 코드는 같은 코드이다. 아래 같은 방법으로도 기본키를 지정해줄 수 있다.


FOREIGN KEY 제약조건

create table departments(
	department_id number(4),
	dept_name varchar(30),
	manager_id number(6),
	location_id number(4),
	constraint dept_id_fk foreign key(department_id) references employees(department_id)
);

department_id를 외래키 설정하고, employees의 department_id키를 참조한다는 의미.

Comments