1. 제약조건의 개념과 사용 이유
제약조건(Constraints)이란 데이터를 조작할 때 데이터 모델 생성 시 정의된 규칙이 적용되게끔 하는 데이터베이스 관리 시스템의 핵심 기능이다. 제약 조건을 통해 데이터의 무결성, 정확성 및 신뢰성을 보장하여 데이터 베이스 사용자 및 방법에 상관없이 특정 규칙을 일관되게 적용할 수 있게 된다.
데이터 무결성이란?
데이터 전송,저장되고 처리되는 모든 과정에서 변경되거나 손상되지 않고 완전성,정확성,일관성을 유지함을 보장하는 특성
2. 제약조건의 종류
(1) NOT NULL
컬럼명 데이터타입 NOT NULL
NOT NULL 제약 조건을 명시하면 해당 컬럼에는 반드시 데이터를 입력해야 한다. 즉 반드시 값이 들어 있어야 하는 컬럼에 NOT NULL 제약 조건을 만들어 사용한다. 구체적인 예시로 확인해 보자.
-- 테이블 생성
CREATE TABLE NOTNULL(
COL_NULL VARCHAR2(10),
COL_NOT_NULL VARCHAR2(10) NOT NULL
);
-- NULL값 데이터 입력
INSERT INTO notnull VALUES ('AA','');
다음과 같이 NOT NULL 제약 조건이 명시된 컬럼에 데이터를 넣지 않으면 NULL 값을 넣을 수 없다는 SQL 오류가 발생한다.
또한 제약조건은 엄연한 데이터 베이스 객체이므로 별도로 이름을 명시하지 않으면 오라클에서 이름을 자동 생성한다.
--NOT NULL 제약조건 객체 생성 확인 SQL 문
SELECT constraint_name,constraint_type,table_name,search_condition
from SYS.user_constraints
WHERE table_name='NOTNULL';
질의 결과 SYS_coo11152 란 이름의 객체로 제약 조건이 생성되었음을 확인할 수 있다.
(2) UNIQUE
컬럼명 데이터타입 UNIQUE
or
CONSTRAINTS 제약조건명 UNIQUE(컬럼명...)
UNIQUE는 해당 컬럼의 값이 유일해야 한다는 제약 조건이다.UNIQUE 와 NOT NULL 제약 조건을 같이 명시해서 특정 컬럼의 입력값의 유일함은 물론 반드시 입력하도록 설정 할 수도 있다. NULL 허용 컬럼에도 UNIQUE 제약조건을 붙일 수 있다.
※ UNIQUE 제약조건과 기본키(Primary key)의 차이점
테이블 생성시 UNIQUE 제약 조건 설정
-- 단일 컬럼 지정 UNIQUE 제약조건
CREATE TABLE supplier
( supplier_id NUMBER(10) NOT NULL,
supplier_name VARCHAR2(50) NOT NULL,
contact_name VARCHAR2(50),
CONSTRAINT supplier_unique UNIQUE(supplier_id)
);
-- 복수 컬럼 지정 UNIQUE 제약조건
CREATE TABLE supplier
( supplier_id NUMBER(10) NOT NULL,
supplier_name VARCHAR2(50) NOT NULL,
contact_name VARCHAR2(50),
CONSTRAINT supplier_unique UNIQUE(supplier_id,supplier_name)
);
UNIQUE 제약 조건 추가 및 삭제
-- UNIQUE 제약 조건 추가
ALTER TABLE supplier
ADD CONSTRAINT supplier_contact_unique UNIQUE(contact_name);
-- UNIQUE 제약 조건 삭제
ALTER TABLE supplier
DROP CONSTRAINT supplier_unique;
UNIQUE 제약 조건 해제 및 활성화
-- UNIQUE 제약조건 비활성화
ALTER TABLE 테이블명
DISABLE CONSTRAINT 제약조건명;
ALTER TABLE supplier
DISABLE CONSTRAINT supplier_unique;
-- UNIQUE 제약조건 활성화
ALTER TABLE 테이블명
ENABLE CONSTRAINT 제약조건명;
ALTER TABLE supplier
ENABLE CONSTRAINT supplier_unique;
참고자료
TTA정보통신용어사전
한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수
terms.tta.or.kr
What Are the Different Types of Database Constraints?
Learn about the different types of database constraints and how they ensure data consistency. View examples in Vertabelo’s web-based design tool.
vertabelo.com
Oracle / PLSQL: SELECT Statement
Oracle / PLSQL: SELECT Statement This Oracle tutorial explains how to use the Oracle SELECT statement with syntax, examples, and practice exercises. Description The Oracle SELECT statement is used to retrieve records from one or more tables in an Oracle da
www.techonthenet.com
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] 제약조건(Constraints) 의 개념과 종류(2) Primary key&Foreign key&Check (0) | 2023.07.11 |
---|---|
[Oracle] 데이터 타입(1) 문자 데이터 타입과 숫자 데이터 타입 (0) | 2023.07.09 |
[Oracle] 테이블 조회 및 SELECT 사용법 (0) | 2023.07.06 |