코딩하렴

DDL Data Definition Language - CREATE 테이블 생성

by 으렴


관계형 데이터 베이스를 사용하기 위해서는 테이블을 생성해야 한다.


생성은 Create Table을 사용한다.

// example 1
create table STUDENT (
m_number number(8) primary key,
m_name varchar2(30) not null,
score number(6)
);

DESC STUDENT; //table의 구조 정보가 조회됨


제약 조건 걸기

constraint를 사용해서 기본키를 지정할 수 있다.

constraint를 사용하면 기본키의 이름을 지정할 수 있다.

// example 2
create table dept( //마스터 테이블
    deptno varchar2(4) primary key,
    deptname varchar2(30)
);
Create table emp(
    enum number(4) primary key,
    ename varchar(20),
    deptno varchar2(4) not null,
    createdate date default sysdate,
    constraint emppk primary key(enum),
    constraint deptfk foreign key (deptno) references dept (deptno)//외래키 생성
);

외래키를 지정하려면 먼저 마스터 테이블이 생성되어야 한다.

constraint deptfk foreign key (deptno) references dept (deptno)

외래키 이름 / emp테이블의 daptno / dept테이블의 deptno컬럼



테이블 생성 할 때 CASCADE 사용

cascade는 참조관계(기본키와 외래키 관계)가 있을 경우 참조되는 데이터도 자동으로 삭제 할 수 있는 것이다.


// example 3
create table dept(
deptno varchar2(4) primary key,
deptname varchar2(30)
);
insert into dept values ('1000','HR');
insert into dept values ('1001','finance');
insert into dept values ('1002','Marketing');

dept테이블을 만들고 그 안에 데이터를 넣어준다.


create table emp(
empno number(10),
ename varchar2(20),
sal number(10,2) default 0,
deptno varchar2(4) not null,
createdate date default sysdate,
constraint e_pk primary key(empno),
constraint d_fk foreign key (deptno) references dept(deptno) on delete cascade
);
insert into emp values (100,'may',1000,'1000',sysdate);
insert into emp values (101,'lux',2000,'1001',sysdate);

직원테이블을 생성해주고, 데이터를 입력한다.

delete from dept where deptno ='1000';
select * from emp;

여기서 dept에 있는 1000번인 HR을 지운다.

지우고 나서 emp를 조회해 보면 may가 사라진다.


on delete cascade

이 옵션은 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신도 삭제되는 옵션이다.


 - 참조 무결성 준수 가능

참조 무결성이란 마스터테이블에 참조하고있는 컬럼이 마스터테이블에 없는 정보를 가지고 있게 하지 않도록 하는 것이다.


사이트의 정보

코딩하렴

으렴

활동하기