DATABASE

[DB] Oracle DDL

하연01 2021. 11. 9. 19:59
< DDL > 
- CREATE TABLE : 테이블 생성 
- ALTER TABLE : 테이블 스키마 등 관련 변경 
- DROP TABLE : 테이블 삭제 
- RENAEM : 이름 변경 
- TRUNCATE : 테이블의 모든 데이터 삭제 (자체 삭제 아님) 
- COMMENT : 테이블에 설명 추가

 

< CREATE TABLE  > 

bookno, title, author, pubdate 컬럼을 가진 book 이라는 테이블을 만든다. 
CREATE TABLE (
	bookno NUMBER(5),
    	title VARCHAR(50),
    	author VARCHAR2(10),
   	pubdate DATE
);

※ 데이터는 들어있지 않다. 틀만 만들어진다. 

 

< 서브쿼리를 이용한 테이블 생성 >

emp 테이블에서 직무가 영업인 직원테이블을 따로 만들려고 한다. 
CREATE TABLE empSALES 
AS
	SELECT * FROM emp
    	WHERE job = 'SALES';

※ 기존에 있던 테이블을 참조하여 새로운 테이블을 만들기 때문에 해당 데이터도 같이 들어간다. 

   만약 데이터는 적재하기 싫다면 where 1=0; 조건을 추가하면 스키마만 카피하여 만들게 된다. 

 

 

 

< ALTER TABLE (변경) > 

 

컬럼추가 

book 테이블에 pubs라는 컬럼을 추가한다.
ALTER TABLE book ADD (pubs VARCHAR2(50));

 

컬럼수정 

book 테이블에 title 컬럼의 데이터타입을 변경한다. 
ALTER TABLE book MODIFY (title VARCHAR2(100));

 

컬럼삭제 

book 테이블의 author 컬럼을 삭제한다. 
ALTER TABLE boko DROP author;

 

* UNUSED COLUMN 

: select * 해도 결과에 unused 처리된 컬럼은 나오지 않는다.

 

book 테이블의 author 컬럼을 unused 처리 한다. 
ALTER TABLE book SET UNUSED (author);
unused 처리된 모든 컬럼을 삭제한다. 
ALTER TABLE book DROP UNUSED COLUMNS;

 

< DROP TABLE > 

book 테이블을 전체 삭제한다. 
DROP TABLE book;

 

book 테이블의 모든 데이터를 삭제한다. 
TRUNCATE TABLE book;

 

 

< COMMENT > 

book 테이블에 설명을 추가한다. 
COMMENT ON TABLE book IS 'this is a comment';

 

emp의 코멘트를 삭제한다. 
COMMENT ON TABLE emp IS '';

 

 

< RENAME > 

book 테이블 이름을 article로 변경한다. 
RENAME book To article;

 

book 테이블의 bookno 컬럼 이름을 bookid로 변경한다.
ALTER TABLE book RENAEM COLUMN bookno TO bookid;

 

※ 컬럼이름을 변경하고싶다면, ATLER TABLE 꼭 같이 써주어야 한다. (컬럼을 혼자 존재할 수 없기 때문에)