본문 바로가기

데이터베이스/RDBMS

[Oracle] DDL - CREATE, ALTER, DROP, RENAME, TRUNCATE

반응형

 CREATE TABLE 

  • 테이블 생성
CREATE TABLE 테이블명 (
    칼럼명1 DATATYPE [DEFAULT 형식],
    칼럼명2 DATATYPE [DEFAULT 형식],
    칼럼명3 DATATYPE [DEFAULT 형식]
);
SQL> CREATE TABLE PLAYER(
  2  PLAYER_ID CHAR(7) NOT NULL,
  3  PLAYER_NAME VARCHAR2(20) NOT NULL,
  4  TEAM_ID CHAR(3) NOT NULL,
  5  BIRTH_DATE DATE,
  6  CONSTRAINT PLAYER_PK PRIMARY KEY (PLAYER_ID)
  7  );

Table created.

 

  • 생성된 테이블 구조 확인
DESCRIBE 테이블명; 또는 DESC 테이블명;
SQL> DESCRIBE PLAYER;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 PLAYER_ID				   NOT NULL CHAR(7)
 PLAYER_NAME				   NOT NULL VARCHAR2(20)
 TEAM_ID				   NOT NULL CHAR(3)
 BIRTH_DATE					    DATE

 

  • 테이블 복사
CREATE TABLE 테이블명
AS SELECT * FROM 복사할_테이블명;
SQL> CREATE TABLE TEAM_TEMP
  2  AS SELECT * FROM TEAM;

Table created.

 

  

 ALTER TABLE  

  • 칼럼 추가
ALTER TABLE 테이블명
ADD 추가할_칼럼명 테이터_유형;
SQL> ALTER TABLE PLAYER
  2  ADD (ADDRESS VARCHAR2(80));

Table altered.

SQL> DESC PLAYER;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 PLAYER_ID				   NOT NULL CHAR(7)
 PLAYER_NAME				   NOT NULL VARCHAR2(20)
 TEAM_ID				   NOT NULL CHAR(3)
 BIRTH_DATE					    DATE
 ADDRESS					    VARCHAR2(80)

 

  • 칼럼 삭제
ALTER TABLE 테이블명
DROP COLUMN 삭제할_칼럼명;
  • 칼럼에 대한 정의 변경
ALTER TABLE 테이블명
MODIFY ( 칼럼명1 데이터_유형 [DEFAULT 식] [NOT NULL],
                  칼럼명2 데이터_유형 ... );
SQL> ALTER TABLE TEAM_TEMP
  2  MODIFY (ORIG_YYYY VARCHAR2(8) DEFAULT '20020129' NOT NULL);

Table altered.

 

  • 칼럼명 변경
ALTER TABLE 테이블명
RENAME COLUMN 변경할_칼럼명 TO 새로운_칼럼명;
  • 테이블 생성 시 부여했던 제약 조건 삭제
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;
  • 테이블의 특정 칼럼에 제약조건 추가 
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);
SQL> ALTER TABLE PLAYER
  2  ADD CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);

Table altered.

 

   

 RENAME TABLE 

  • 테이블명 변경
RENAME 변경할_테이블명 TO 새로운_테이블명;

  

 DROP TABLE 

  • 테이블 삭제
DROP TABLE 테이블명;
  • 테이블과 관계가 있있던 참조되는 제약조건도 함께 삭제
DROP TABLE 테이블명 [CASCADE CONSTRAINTS];
  • 휴지통에 안넣고 영구삭제
DROP TABLE 테이블명 CASCADE CONSTRAINTS PURGE;
  • 휴지통 확인
SELECT * FROM RECYCLEBIN;

 

 

 TRUNCATE TABLE 

  • 해당 테이블에 들어있던 행들만 삭제 (저장 공간을 재사용 가능하도록 해제)
  • TRUNCATE 후 자동으로 커밋을 한다. TRUNCATE의 삭제는 롤백할 수 없다.
TRUNCATE TABLE 테이블명;

 

반응형