데이터양을 줄이기 위해 분리하는 과정 = 정규화 과정
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];
'SQL' 카테고리의 다른 글
오라클 스타트업 (0) | 2022.11.08 |
---|---|
SQL 단일행 함수 (0) | 2022.11.08 |
오라클 트렌젝션, 데드락 (0) | 2022.11.08 |
SQL 테이블 구조,생성, 데이터타입, 제약조건 PK,FK, 제약조건조회 (0) | 2022.11.08 |
SQL 명령어 그룹함수와 HAVING절, GROUP BY절, (0) | 2022.11.08 |