728x90
기본 명령어
ALTER TABLE 테이블명
ADD, MODIFY, DROP
1. ADD
추가 가능한 것: 컬럼, 제약조건
1) 컬럼 추가
ALTER TABLE emp01
ADD (job_id varchar2(10));
2) 제약조건 추가
alter table 테이블명
add constraint 제약조건명 제약조건유형(컬럼명);
-- 제약조건 추가(table level 문법)
alter table emp01
add constraint emp_mgr_fk
foreign key (mgr_id)
references emp2(emp_id);
alter table emp01
add constraint emp_id_pk primary key(emp_id);
2. MODIFY
수정 가능한 것: 데이터타입, default값, 컬럼사이즈, 제약조건
ALTER TABLE emp01
MODIFY (job_id varchar2(20));
-- 제약조건 추가(column level문법)
alter table emp01
modify job_id constraint emp_mgr
foreign key references emp2(emp_id);;
** column level 문법을 사용할때는 foreign key를 생략할 수 있지만,
table level 문법은 생략불가이므로,
modify로 제약조건을 추가할때는 외래키 키워드를 생략할 수 있다.
3. RENAME
1) 컬럼명 변경.
ALTER TABLE 테이블명
RENAME COLUMN 기존컬럼명 TO 새로운컬럼명;
2) 제약조건명 변경
ALTER TABLE 테이블명
RENAME CONSTRAINT 기존제약조건명 TO 새제약조건명;
3) 테이블명 변경
ALTER TABLE 테이블명
RENAME 기존테이블명 TO 새테이블명;
4. DROP
삭제 가능한 것: 컬럼, 제약조건, 테이블
drop은 문법이 두개다.
column키워드를 적고 컬럼명을 적든지, column키워드를 생략하고 괄호()안에 컬럼명을 적는 방법.
3-1) 컬럼 삭제
alter table emp01
drop column 컬럼명;
alter table emp01
drop (컬럼명);
3-2) 제약조건 삭제
alter table emp01
drop constraint 제약조건명;
PK의 경우, 삭제할 방법이 하나 더 있다. -> 제약조건 유형으로 삭제
alter table 테이블명
drop primary key;
제약조건을 삭제할때는 주의해야한다.
PK나 UK의 경우, 이미 어떤 컬럼이 외래키로 참조하고 있을 수 있기때문에,
누군가 참조하고있는경우에는 삭제되지않고 오류가 난다.
그럼에도 연결된 제약조건까지 같이 삭제하고 싶을때 cascade 키워드를 같이 작성한다.
alter table 테이블명
drop primary key cascade;
3-3) 테이블 삭제
drop table 테이블명;
제약 조건 추가 방법
위에서도 적었지만 한번 더 정리!
방법1) alter add 사용. table level 문법
alter table 테이블명
add constraint 제약조건명 제약조건유형(컬럼명);
방법2) alter modify 사용, column level 문법
alter table 테이블명
modify 컬럼명 constraint 제약조건명 제약조건유형;
주의!!) not null은 컬럼레벨의 문법만 사용 가능하므로
생성할때도 modify를 사용해야한다.
728x90
'Database > Oracle' 카테고리의 다른 글
Oracle DB) 단일 행 함수 - 숫자함수: 반올림, 버림, 나머지 (0) | 2022.04.12 |
---|---|
Oracle DB) 제약 조건 확인하기(SQLPlus, Developer) (0) | 2022.03.22 |
Oracle DB) 제약 조건: Primary Key, Foreign key, Unique, Not Null, Check (0) | 2022.03.15 |
Oracle DB) 데이터 정의어(DDL) - CREATE 테이블 생성, 복사 (0) | 2022.03.15 |
Oracle DB) 단일행 함수 - 문자함수(자르기, 연결하기 등등) (0) | 2022.03.02 |