728x90
DDL (Data Definition Language)
1. Create 2. Alter 3. Drop 4. Truncate
DDL : 데이터를 담는 그릇을 정의하는 언어
DDL로 관리하는 대상 : Dmain (도메인), Schema (스키마/DB구조), Table(테이블), View (뷰), Index (인덱스)
1. Create - 생성
create table board(
no number,
id varchar2(20) primary key,
title varchar2(20) not null,
content nvarchar2(2),
name char(10),
regdate date);
constraint emp2_empno_pk primary key(empno));
commit; # 트랜젝션 확정 (DCL)
rollback; # 실행 취소 (DCL)
컬럼명과 타입, 제약조건을 명시해주고 테이블을 생성한다.
테이블 생성 후 꼭 commit 해줘야 반영 된다. commit 은 트랜잭션 확정이라는 뜻의 데이터 제어어(DCL)이다.
※ 테이블 복제하는 법
SQL> create table copyemp
2 as
3 select empno,ename,sal,mgr,hiredate
4 from emp
5 where 1=1;
※ 행마다 자동 일련번호 주는법 - sequence 사용
SQL> create sequence board_seq;
Sequence created.
SQL> create sequence ord_no_seq start with 10000; # 10000부터 일련번호 시작
insert into board values(board_seq.nextval,'test',sysdate,0);
SQL> select board_seq.currval from dual; # 현재 시퀀스 몇까지 만들었는지 확인하는 법
board_seq 이라는이름의 sequence 를 정의하고, 행 삽입 시에 board_seq.nextval 로 하나씩 증가하도록 적용시킨다.
2. Alter - 변경
alter table board
2 add email varchar2(20)
alter table board
2 modify (content varchar2(20)); # content를 varchar2로 타입 변경하기
컬럼 타입 변경하기
SQL> alter table emp2
2 add constraint emp2_tel_uk unique(tel); # 유일한 값
SQL> alter table emp2
2 add constraint emp2_sal_ck check(sal between 5000 and 7000); # 해당조건 true만 가능
SQL> alter table emp2
2 add constraint emp2_job_ck check(job in ('개발자', '가수', '강사'));
SQL> alter table emp2
2 add constraint emp2_deptno_fk foreign key(deptno) references dept2(dcode);
SQL> commit;
Commit complete.
constraint (제약조건) 추가
3. Drop - 삭제
drop table emp2;
drop table emp2 restrict; # 기본값
restrict : 이때 외래키 테이블은 먼저 걸려있는 제약조건을 없애거나, 기본키 테이블을 지워야지 없어진다.
drop table emp2 cascade;
cascade : 참조하는 테이블까지 연쇄적으로 삭제한다.
4. Truncate - 내용만 삭제
truncate table emp2;
728x90
'Programming > SQL' 카테고리의 다른 글
SQL / 오라클 문법 / KEEP 함수 (0) | 2021.04.09 |
---|---|
SQL / 조인 / Inner Join / Outer Join / Non-equi Join / Self Join (2) | 2021.03.16 |
SQL / 서브쿼리 / Inline View 인라인뷰 / Scala Subquery 스칼라 서브쿼리 (0) | 2021.03.14 |
SQL / 그룹 연산 함수 / group by / having절 (0) | 2021.03.13 |
SQL / Oracle 오라클 / 함수 정리 (문자/숫자/날짜/변환/조건/NULL) (0) | 2021.03.13 |
댓글