▶ 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키를 참조한다는 의미.