쥬로그

오라클 - 스키마 수정, 삭제 본문

Study/Oracle

오라클 - 스키마 수정, 삭제

쥬쥬씨 2021. 8. 31. 20:26
반응형

< 스키마 수정, 삭제 >

* ALTER TABLE / DATABASE이미 생성된 테이블이나 DB의 스키마를 변경할 때 사용한다.

* 테이블을 삭제하려면 DROP TABLE을 사용한다.

  테이블은 놔두고 데이터만 삭제하려면 TRUNCATE TABLE을 사용한다.


* 스키마 수정

- 이미 생성된 스키마에 대해 수정할 경우 사용한다.

 

> 테이블 컬럼 추가/삭제/수정

   ALTER TABLE 테이블명 ADD 컬럼명 데이터타입

   ALTER TABLE 테이블명 DROP COLUMN 컬럼명

   ALTER TABLE 테이블명 CHANGE 컬럼명 new_컬럼명 데이터타입 (컬럼명 변경)

   ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 (컬럼 타입 변경)

 

> 기본키 제약 조건 추가/삭제

   ALTER TABLE 테이블명 ADD PRIMARY KEY (컬럼명)

   ALTER TABLE 테이블명 DROP PRIMARY KEY

 

> UNIQUE 제약 조건 추가/삭제

   ALTER TABLE 테이블명 ADD UNIQUE (컬럼명)

   ALTER TABLE 테이블명 ADD CONSTRAINT 제약명 UNIQUE (컬럼명 1, 컬럼명 2)

   ALTER TABLE 테이블명 DROP UNIQUE 제약명

 

> 외래키 제약 조건 추가/삭제

   ALTER TABLE 테이블명 ADD FOREIGN KEY (컬럼명) REFERENCES 원테이블명(원컬럼명)

   ALTER TABLE 테이블명 DROP FOREIGN KEY 컬럼명

 

> 테이블명 수정

   ALTER TABLE 테이블명 RENAME new_테이블명;

 

> CHECK 제약 조건 추가/삭제

   ALTER TABLE 테이블명 ADD CHECK 조건

   ALTER TABLE 테이블명 ADD CONSTRAINT 조건명 CHECK (조건절)

   ALTER TABLE 테이블명 DROP CHECK 조건명

 

> DEFAULT 제약 조건 추가/삭제

   ALTER TABLE 테이블명 ALTER 컬럼명 SET DEFAULT 기본값

   ALTER TABLE 테이블명 ALTER 컬럼명 DROP DEFAULT

 

ex) 1. 컬럼으로 이름(Name), 주소(Address), 전화번호(Telephone)를 가지는 BusinessCard 테이블을 정의하고 생성하시오.

-> create table BusinessCard (Name varchar2(255), Address varchar2(255), Telephone varchar2(255));

     2. 테이블 컬럼 추가(ID int)

-> alter table BusinessCard add (Id int);

     3. 컬럼 타입 변경: Address varchar2(255) -> Char(255)

-> alter table BusinessCard modify Address char(255);

     4. 컬럼명 변경 (Address -> Address 1)

-> alter table BusinessCard rename column Address to Address1;

     5. ID 컬럼 Unique, PK 설정

-> alter table BusinessCard add unique(Id);

-> alter table BusinessCard add primary key (Id);

     6. 컬럼명 삭제(Address1)

-> alter table BusinessCard drop column Address1;

     7. Address 기본값 설정 ('Seoul')

-> alter table BusinessCard modify Address default 'Seoul';

    8. 테이블명 변경 (BusinessCard -> BusinessCards)

-> alter table BusinessCard rename to BusinessCards;

-> desc BusinessCards; (조건들이 제대로 반영됐는지 확인)

 

 

* 스키마 삭제

- 데이터베이스(DB) 삭제

  DROP DATABASE 데이터베이스명

 

- 테이블 삭제

  : 내용과 테이블 전체 삭제

  DROP TABLE 테이블명

 

  : 레코드를 일일히 하나씩 지움, 테이블 스키마는 유지

  DELETE * FROM 테이블명

 

  : 테이블 내요만 지움, 테이블 스키마는 유지, 전용 명령어

  TRUNCATE TABLE 테이블명

 

ex) 1. BusinessCard 테이블 생성/내용 추가한 후 테이블 스키마는 남겨두고 레코드를 모두 비우시고

-> create table BusinessCard (Name varchar2(255), Address varchar2(255), Telephone varchar2(255));

-> insert into BusinessCard values ('Bob', 'Seocho-dong 123', '123-4567');

-> insert into BusinessCard values ('Sam', 'Sinsa-dong 345', '321-4321');

-> truncate table BusinessCard;

    2. 테이블을 삭제하시오.

-> drop table BusinessCard;


< Point > 

☆ 테이블의 스키마를 변경하기 위해서는 ALTER TABLE 명령어를 사용한다.

☆ 테이블의 컬럼 타입을 변경하려면 MODIFY를 사용한다.

    ADD COLUNM은 컬럼 추가, DROP COLUMN은 컬럼 삭제, CHANGE는 컬럼명을 변경할 때 사용한다.

☆ 테이블을 삭제하려면 DROP TABLE 테이블명 을 사용한다.

    TRUNCATE TABLE, DELETE * FROM 테이블명은 테이블의 내용만 삭제한다.


< 요약 >

* ALTER

- 테이블 컬럼 추가/삭제

- 테이블 컬럼명 변경, 컬럼 타입 변경

- 각종 제약 조건 추가/삭제

- PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT

- 테이블명 변경

* 테이블 삭제

- DELETE * FROM 테이블명:  레코드를 일일히 삭제, 스키마 유지

- TRUNCATE TABLE 테이블명: 테이블 스키마는 유지, 내용만 지우는 전용 명령어

- DROP TABLE 테이블명: 테이블 전체 삭제, 스키마 삭제

 

 

 

 

반응형