일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오라클
- VisualStudioCode
- JS
- 오류
- 개발자
- CSS
- Eclipse
- 코딩
- 변수
- 자바
- SQL
- Java
- 삐옥
- variable
- Servlet
- oracle
- select
- 연산자
- 에러
- 이클립스
- From
- 서블릿
- HTML
- error
- 오라클오류
- Operator
- 자료형
- sqldeveloper
- datatype
- function
- Today
- Total
뇨내
[Oracle-SQL Developer] Constraint 제약사항 본문
[Oracle-SQL Developer] Constraint 제약사항
삐옥 2021. 11. 21. 14:00
Constraint 제약사항
1. NOT NULL
2. PRIMARY KEY(PK)
3. FOREIGN KEY(FK)
4. UNIQUE
5. CHECK
6. DEFAULT
- 해당 컬럼에 들어갈 데이터(값)에 대한 조건(규제) > 설계(도메인)
> 조건을 만족하지 못하면 데이터를 해당 컬럼에 넣지 못한다.(에러 발생) > 유효성 검사 도구
- 데이터 무결성을 보장하기 위한 도구★
> 제약 사항을 만드는 방법
1. 컬럼 수준에서 만드는 방법
- 컬럼 1개를 정의 할 때 제약 사항도 같이 정의하는 방법
ex) seq number(3) primary key
- 컬럼명 자료형(길이) [constraint 제약조건명] 제약조건
2. 테이블 수준에서 만드는 방법
- 컬럼 정의와 제약 사항 정의를 분리해서 정의하는 방법
3. 독립으로 만드는 방법
- alter 명령어
NOT NULL
- 해당 컬럼이 반드시 값을 가져야 한다.
- 해당 컬럼에 값이 없으면 에러 발생
- 필수값
PRIMARY KEY(PK)
- 유일하다. > 행간의 동일한 값을 가질 수 없다. > UNIQUE
- not null > 빈값을 가질 수 없다. > NOT NULL
- 테이블의 행들을 구분하기 위한 유일한 값을 가지는 제약사항
- 하나 이상의 컬럼에게 할당 > 일반적으로 1개의 컬럼
- 기본키의 형태
a. 단일 기본키 > 기본키 : 1개의 컬럼이 PK 역할
b. 복합 기본키 > 복합키 : 2개 이상의 컬럼이 모여서 PK 역할 > 복합키 발생 > 가상 키를 따로 생성해서 기본키
- 모든 테이블은 반드시(100%) Primary Key를 가져야 한다.★★★★★
FOREIGN KEY, FK
- 관계형 데이터베이스에서 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사하는 경우
외래키가 생성된다.
- 외래키 지정시 참조 무결성 제약 옵션을 선택할 수 있다.
UNIQUE
- 유일하다. > 행간의 동일한 값을 가질 수 없다.
- Primary Key - not null
- UNIQUE 제약은 Primary Key와 다르게 null을 가질 수 있다.
- UNIQUE는 식별자로 사용하기가 애매하다. > 식별자로 사용하지 말것!!! > 식별자는 PK를 사용한다.
a. 값을 가지는 경우 > 식별자로 사용 가능하다.
b. 값을 가지지 않는 경우 > 식별자로 사용 불가능하다.
CHECK
- 사용자 정의 제약 조건
- where절과 동일하다고 생각하면 굉장히 쉽다.(비교연산자, liek, in, between 등..)
DEFAULT
- 기본값 설정
- 해당 컬럼값을 대입하지 않으면 null 대신 미리 준비한 값을 넣어준다.
'Oracle > Casting + Sequence + Constraint' 카테고리의 다른 글
[Oracle-SQL Developer] Sequence 시퀀스 (0) | 2021.11.21 |
---|---|
[Oracle - SQL Developer] Casting 형변환 (0) | 2021.11.16 |