Alter/Drop (DDL)
**
객체 생성 : 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 영업부;