핵심 제약조건 기본키 , 외래키 설명 및 데이터의 무결성 설명
고유키와 기본키의 차이점
기본키와 비슷하지만, 기본키는 테이블에 1개 만 지정이 가능하고, null 값을 허용하지 않음
[컬렴명]데이터타입(길이) UNUQUE
create table member
( mem_id char(8) not null primary key,
mem_name varchar(10) not null,
height tinyint unsigned null,
email char(30) null unique
);
[컬럼명][데이터타입](길이) CHECK
create table member
( mem_id char(8) not null primary key,
mem_name varchar(10) not null,
height tinyint unsigned null check(height >= 100),
email char(30) null
);
insert into member values('EST', '에스텔', 166, 'egeg@gmail.com'); insert into member values('JYP', '박진영', 188, 'jyp@gmail.com'); insert into member values('SM', '이수만', 90, 'sm@gmail.com');
ALTER 테이블변경문 사용, ADD CONSTRAINT 옵션으로 생성되어있는 기존 테이블에 제약조건을 지정한다.
alter table member
add constraint
check (phone1 in ('02','031', '032'));
check 제약조건을 걸어놓은, 지역번호가 아닌 핸드폰 번로 010을 입력하자 입력되지 않음.
insert into member values('HL', '헬로', 162, '010'); insert into member values('HI', '하이', 162, '02');
[털럼명][타입](길이) DEFAULT
create table member ( mem_id char(8) not null primary key, mem_name varchar(10) not null, height tinyint unsigned null default 160, phone1 char(3) null );
ALTER 테이블 및 컬럼 변경문 사용함.
SET DEFAULT '자동입력될 기본값'
alter table member alter column phone1 set default '02';
insert into member values('RED', '레드벨벳', 158, '02'); insert into member values('SM', '이수만', default, default);
기본적으로 NULL/NoT NULL 제약조건 생략시 NULL 로 인식한다.
BUT 기본키 PRIMARY KEY / 기본깂 DEFAULT 제약조건에서의 생략은 NOT NULL로 인식한다.