본문 바로가기

JAVA/Oracle

오라클 - 테이블 생성시에 제약사항

반응형

** 테이블 생성시에 제약사항

null : 칼럼의 값이 null 이 될 수 있다. 중복가능

not null : 칼럼의 값이 null 이 될 수 없다. 중복간,ㅇ


unique : 칼럼의 값이 유일해야 한다. 하지만 null을 허용한다.

primary key : 컬럼의 값이 유일해야 하고 null 이 될 수 없다. 다른 레코드와 구별하기 위한 식별자의 역할


default : 칼럼의 값이 생략되면 기본값을 설정하겠다.

check : 칼럼의 값을 check 명시된 사항을 만족해야 한다.


default 예제)

테이블 생성시

create table member(

id varchar2(20) primary key, 

pwd varchar2(20) , 

name varchar2(20) , 

age number default 20

);


데이터 생성시

insert into member values('tiger', 'tiger', '호랑이', default);


check 예제)

테이블 생성시

create table member(

id varchar2(20) primary key, 

pwd varchar2(20) not null, 

name varchar2(20) , 

age number check(age >=20)

);


데이터 생성시

insert into member values('tiger', 'tiger', '호랑이', 15); // 데이터 생성 X

insert into member values('tiger', 'tiger', '호랑이', 25); // 데이터 생성 O


** 테이블 생성시 sql 명령어

형식 : create table 테이블이름 (칼럼이름 자료형 [제약사항]);

예 : create table member(

id varchar2(20) not null, 

pwd varchar2(20) not null, 

name varchar2(20) null, 

age number null

);


** 테이블에 자료를 추가하기 위한 sql명령어

형식1 : insert into 테이블이름 values(값1, 값2,...); // 값의 수는 테이블의 칼럼의 수와 순서가 동일해야 한다.

형식2 : insert into 테이블이름 (칼럼명1,칼럼명2,...) values(값1,값2,...) // 특정칼럼의 값만 설정하겠고 나머지는 null 이여야 한다.


예 : insert into member values ('tiger','tiger', '홍길동', 20);

insert into member values ('lion','lion',null,null);

insert into member (id, pwd) values('cat','cat');


------------------------------------------------------------------------------------


** sql 명령어 실습

create table 부서 (

부서번호 number primary key, 

부서명 varchar2(20) not null, 

부서위치 varchar2(20) check (부서위치 in ('신수동','판교'))

);


create table 사원 (

사원번호 number primary key, 

사원명 varchar2(20) not null, 

연봉 number default 300, 

전화 varchar2(20) unique, 

나이 number check (나이 >= 0), 

부서번호 number references 부서(부서번호)

);



반응형