SQL

241119 SQL 05 - modify, create as select 구문, truncate, drop, insert, update, delete, generated as identity

suerte10 2024. 11. 19. 13:55

1. 수정(modify)

alter table 테이블이름 modify 컬럼이름 컬럼정의;

1) 컬럼 정의 : 데이터 타입, 기본값, null 여부

2) modify 구문은 제약조건의 정의는 변경할 수 없음.

  * drop constraint 구문으로 제약조건을 삭제하고, add constraint 구문으로 제약조건을 추가하는 방식으로는 가능

  * 제약조건이 없는 컬럼에 제약조건을 부여하는 것은 가능

modify 구문 사용 예시

 

 

 

2. create as select 구문

1) 테이블 모양(컬럼, 데이터 타입)과 데이터를 복사.

2) where절을 사용해서 특정 조건을 만족하는 튜플들만 복사할 수도 있음

create as select 구문 예시

 

 

 

3. 삭제(2)

1) truncate : 테이블의 모든 행을 삭제

truncate table 테이블이름;

*** 롤백이 불가능하다(트랜잭션 로그를 생성하지 않음).

 

2) drop : 테이블을 데이터베이스에서 삭제

  * 삭제된 테이블은 SQL Developer 휴지통에서 확인 가능

drop table 테이블이름;

 

truncate와 drop 사용 예시

 

 

 

4. insert

1) 테이블에 1개의 행을 삽입

insert into table_name (column, ...) values (value, ...);

 

2) insert select 구문 : 다른 테이블에서 검색한 행(들)을 삽입

insert into table_name select column, ... from another_table [where, ...];

  * where절은 생략 가능

 

3) 사용 예시

 

 

 

5. update

1) 테이블 데이터 업데이트(수정)

update table_name set column_name = value, ... [where 조건식];

  * where절은 생략 가능

  * 조건식을 잘 만드는 것이 중요하다.

 

2) 사용 예시

update 문장 사용예시 (1)
update 문장 예시 (2)

 

 

 

6. delete

1) 테이블에서 행을 삭제하는 DML

delete from table_name [where 조건식];

  * where 절이 없는 경우에는 모든 행이 삭제

  * where 절이 있는 경우에는 조건을 만족하는 행(들)이 삭제됨.

 

2) 사용 예시

 

 

 

7. delete, truncate, drop 차이

1) delete: 테이블의 모든 행의 데이터를 삭제, 테이블 크기가 줄어들 지는 않음(하드디스크에서 사용 중인 용량은 그대로)

2) truncate: 테이블의 모든 행의 데이터를 삭제하고, 행 자체도 삭제 (하드디스크에서 용량이 줄어듦)

3) drop: 테이블 자체를 DBMS에서 삭제

 

 

 

8. generated as identity

1) 오라클에서 시퀀스라는 객체를 만들어주고 컬럼의 기본값 설정까지 자동으로 끝내주는 구문.

2) 이렇게 만들어진 컬럼은 null이 되거나 겹치는 값이 들어가지 않고 1부터 1씩 증가하는 값이 들어가게 된다.