[SQL] 데이터정의어(DDL)2 (제약조건)
테이블 복사
테이블복사는 데이터베이스 시스템 관리나 데이터 분석 등에 있어서 중요한 역할을 한다.
-
백업용
-
테스트용
-
분석용
-- 부서테이블의 내용과 구조를 복사하여 새로운 테이블을 생성한다.
create table copydept1
as
select * from dept;
select * from copydept1;
create table copydept2
as
select * from dept
where 2=1; -- 만족하지 않는 조건식
select * from copydept2;
테이블의 제약조건
제약조건은 테이블에 부적절한 데이터가 들어오는 것을 사전에 차단하기 위해 규칙을 정해둔 것이다. 데이터의 일관성과 신뢰성일 높일 수 있는 특징이 있다.
1) 무결성
- 잘못된 데이터가 삽입되는 것을 방지하고 데이터의 일관성을 유지한다.
2) 정합성 -데이터 정합성은 어떤 데이터들이 값이 서로 일치하는 상태를 의미한다.
3) 강제성
4) 유연성
5) 효율성
제약조건의 종류
- primary key, foreign key, unique, not null, check
-- 컬럼 레벨 방식으로 제약조건을 설정하여 customer 테이블을 생성한다.
create table customer (
num number(4) primary key,
name varchar2(12) not null,
addres varchar2(60) unique,
age number(3) check(age >=30)
);
primary key(기본키)
테이블에 대한 기본키를 생성하며 약자는 pk다.
생성한 기본키는 일반적으로 테이블에 하나만 생성하며 null값을 사용할 수 없다.
unique 제약조건과 not null 제약조건을 만족해야 하므로 제약조건이 자동으로 생성된다.
foreign key(외래키)
테이블에 대한 외래키를 생성하며 약자는 fk다.
컬럼값은 부모테이블의 기본키인 primary key 제약조건이 부여된 컬럼값이다.
unique
설정한 컬럼은 유일한 값을 가지며 약자는 uk다.
중복된 값을 가질 수 없다.
not null
설정한 컬럼은 반드시 값을 가져야 하며 약자는 nn다.
컬럼값을 입력하지 않았을 때 null 값으로 입력되는 것을 방지한다.
check
값의 범위나 패턴을 정의하며 약자는 ck다.
설정한 조건에 일치하는 컬럼값만 저장할 수 있다.
댓글남기기