오라클

Alter/Drop (DDL)

웹개발자준비 2018. 9. 4. 18:57

**

객체 생성 : create

객체 수정 : alter

객체 삭제 : drop


데이터 생성 : insert

데이터 수정 : update

데이터 삭제 : delete

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

테이블 수정하기

- 테이블의 구조를 수정하기 > 컬럼의 정의를 수정하기

- 최대한 테이블을 수정할 상황을 만들면 안된다.(*************************************)


1. 테이블 삭제 > 테이블 DDL 수정 > 수정된 DDL 새롭게 테이블 생성

    + 기존에 데이터가 있으면 데이터 백업 > 테이블 삭제 > 테이블 생성 > 데이터 복구

    : 개발(공부) 중에만 사용O, 운영 중에는 사용X

2. alter 명령어 > 테이블의 구조만 변경 + 데이터 그대로 유지

    : 개발(공부) 중에만 사용O, 운영 중에는 사용O(쉽지가 않다.)


테이블 수정 > 컬럼수정

1. 새로운 컬럼을 추가하기 : 가장 쉬움

2. 기존 컬럼의 정의를 수정하기(제약, 자료형, 컬러명(x)) : 어려움

3. 기존 컬럼을 삭제하기 : 어려움


1.새로운 컬럼 추가하기 (ADD)

alter table tblEdit 

    add(price number(5) null); 


alter table tblEdit

    add(description varchar2(1000) default '임시' not null); --제약 not null


-a. null 추가 > 추가된 컬럼을 수정(값 대입) > not null추가

-b. not null+default 추가 > 원하는 값으로 컬럼 수정(값 수정)


**추가하는 컬럼은 반드시 비어있어야한다


2. 기존 컬럼을 수정하기 (MODIFY)


-a 자료형의 크기를 늘리기

alter table tblEdit

    modify (description varchar2(2000));

    

-b 자료형의 크기를 줄이기(기존 데이터 확인 후*******)

alter table tblEdit

    modify (data varchar2(10));


3. 컬럼 삭제하기 (DROP COLUMN)

- FK에 참조되는 PK는 삭제하면 안된다.

- 복구 불가능


alter table tblEdit

    drop column etc;


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


테이블의 모든 행 삭제하기

- 테이블 초기화(구조는 그대로 두고 데이터만 리셋)


1. drop -> create

- 은근 사용 빈도 있음

- 관계에 있는 테이블들 주의!!

- 되돌리기 불가능(복구 불가능)


2. delete

- 업무상 특정 레코드 삭제

- 정석

- 모든 행 or 일부 행

- 되돌리기 가능(복구 가능)


3. truncate

- 테이블 초기화 목적

- 정석

- 테이블의 모든 행을 삭제하는 명령어(delete + 조건절없이 실행하는 것과 동일)

- 되돌리기 불가능(복구 불가능)

- 자바 : 컬렉션.clear();


ex)

create table 영업부

as

select * from tblInsa where buseo = '영업부';



1.

select * from 영업부;

desc 영업부;


drop table 영업부;


2.

delete from 영업부;


3.

truncate table 영업부;