반응형

데이터양을 줄이기 위해 분리하는 과정 = 정규화 과정
pk : 학생테이블의 학번컬럼, 사원테이블의 사번컬럼 등
fk : emp테이블의 부서번호



제약 조건 이해와 설정 : UK, NOT NULL, CHECK

NULL은 정해진 값이 없어서 여러번 가능 사용 할 수 있다.

UK(Unique Key) 설정
SQL> CREATE TABLE 테이블 (
2 ..... 3 CONSTRAINT 제약_조건 UNIQUE (컬럼));
SQL> CREATE TABLE 테이블 (
2 컬럼 데이터_타입 CONSTRAINT 제약_조건 UNIQUE,
3 ......

NOT NULL 설정
SQL> CREATE TABLE 테이블 (
2 컬럼 데이터_타입 CONSTRAINT 제약_조건 NOT NULL,
3 ......
-> 모든 숫자컬럼에 NOT NULL을 사용하는게 일반적(만약 지정이 안되어 있다면 지정하지 않은 이유를 알아야한다.)


CHECK 설정 (where절에 썼던거 처럼 쓰면 된다.)
SQL> CREATE TABLE 테이블 (
2 ..... 3 CONSTRAINT 제약_조건 CHECK (조건)); 
SQL> CREATE TABLE 테이블 (
2 컬럼 데이터_타입 CONSTRAINT 제약_조건 CHECK (조건),
3 ......

CHECK와 NOT NULL 제약 조건 검색
SQL> SELECT constraint_name, search_condition FROM user_constraints
 2 WHERE table_name = '테이블';

(sal is NOT NULL)

제약 조건 관리

테이블 만들때 제약조건 하는것 보다 나중에 제약조건 추가하는 방법이 좋다.
 제약 조건 추가/삭제
SQL> ALTER TABLE 테이블 
 2 ADD CONSTRAINT 제약_조건 제약_조건_타입;

SQL> ALTER TABLE 테이블 
 2 MODIFY 컬럼 CONSTRAINT 제약_조건 NOT NULL;

SQL> ALTER TABLE 테이블 
 2 DROP PRIMARY KEY | UNIQUE(컬럼) | CONSTRAINT 제약_조건 [CASCADE];


반응형

+ Recent posts