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
이 옵션은 자신이 참조하고 있는 테이블의 데이터가 삭제되면 자동으로 자신도 삭제되는 옵션이다.
- 참조 무결성 준수 가능
참조 무결성이란 마스터테이블에 참조하고있는 컬럼이 마스터테이블에 없는 정보를 가지고 있게 하지 않도록 하는 것이다.
'DATABASE > SQL' 카테고리의 다른 글
DDL Data Definition Language - View의 생성과 삭제 (0) | 2019.02.26 |
---|---|
DDL Data Definition Language - ALTER DROP 테이블의 변경과 삭제 (0) | 2019.02.26 |
정규화와 성능 (0) | 2019.02.24 |
정규화 Normalization (0) | 2019.02.24 |
Entity Identifier 엔티티 식별자 (0) | 2019.02.24 |
사이트의 정보
코딩하렴
으렴