쥬로그
오라클 - 스키마 수정, 삭제 본문
< 스키마 수정, 삭제 >
* 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 테이블명: 테이블 전체 삭제, 스키마 삭제
'Study > Oracle' 카테고리의 다른 글
오라클 - 검색 성능 개선을 위한 INDEX (0) | 2021.08.31 |
---|---|
오라클 - 권한 설정, 역할 설정 (0) | 2021.08.31 |
오라클 - 중복정보 수정, 정규형, 참조무결성 (0) | 2021.08.31 |
오라클 - 스키마 정의, 자료형, 제약조건 (2) (0) | 2021.08.31 |
오라클 - 서브쿼리, 집합연산 (0) | 2021.08.31 |