서브쿼리를 이용해서 DEPARTMENT 테이블 복사
CREATE TABLE DEPT_COPY AS SELECT * FROM DEPARTMENT; |
DEPT_COPY 테이블에 PK 추가
ALTER TABLE DEPT_COPY ADD PRIMARY KEY(DEPT_ID); |
ALTER(바꾸다, 변조하다)
수정 가능한 것 : 제약조건(추가/삭제), 컬럼(추가/수정/삭제)
이름변경(테이블, 컬럼, 제약조건)
[작성법] 테이블을 수정하는 경우 ALTER TABLE 테이블명 ADD|MODIFY|DROP 수정할 내용; |
1. 제약조건 (추가 / 삭제)
* 작성법 중 [] 대괄호 : 생략할 수 도, 안할 수 도 있다.
● 제약조건 추가 : ALTER TABLE 테이블명
ADD [CONSTRAINT 제약조건명] 제약조건(컬럼명) [REFERENCES 테이블명[(컬럼명)]];
● 제약조건 삭제 : ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;
1. 제약 조건 추가
ALTER TABLE 테이블명
ADD [CONSTRAINT 제약조건명] 제약조건(컬럼명) [REFERENCES 테이블명[(컬럼명)]];
DEPT_COPY 테이블의 DEPT_TITLE 컬럼에 UNIQUE 제약 조건 추가 (제약조건명 : DEPT_TITLE)
ALTER TABLE DEPT_COPY ADD CONSTRAINT DEPT_TITLE_U UNIQUE(DEPT_TITLE); |
DEPT_COPY테이블의 LOCATION_IN 칼럼에 CHECK제약조건 추가
컬럼에 작성할 수 있는 값은 L1,L2,L3,L4,L5
제약조건명 : LOCATION_ID_CHK
ALTER TABLE DEPT_COPY ADD CONSTRAINT LOCATION_ID_CHK CHECK(LOCATION_ID IN ('L1','L2','L3','L4','L5')); |
DEPT_COPY 테이블의 DEPT_TITLE 컬럼에 NOT NULL 제약 조건 추가 ( ADD가 아닌 MODIFY)
ALTER TABLE DEPT_COPY MODIFY DEPT_TITLE NOT NULL; --NOT NULL은 MODIFY 사용 ! 꼭 기억! |
● NOT NULL 제약조건은 다루는 방법이 다름
- NOT NULL을 제외한 제약 조건은 추가적으로 조건으로 인식됨(ADD/DROP)
- NOT NULL은 기존 컬럼의 성질을 변경하는 것으로 익식됨(MODIFY)
● 제약조건 삭제 : ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;
DEPT_COPY에 추가한 제약조건 중 PK 빼고 모두 삭제
ALTER TABLE DEPT_COPY DROP CONSTRAINT DEPT_TITLE_U; ALTER TABLE DEPT_COPY DROP CONSTRAINT LOCATION_ID_CHK; ALTER TABLE DEPT_COPY DROP CONSTRAINT SYS_C007857;-- NOT NULL |
NOT NULL 제거 시 MODIFY 사용
ALTER TABLE DEPT_COPY MODIFY DEPT_TITLE CONSTRAINT SYS_C007858 NULL; |
2. 컬럼추가/수정/삭제
● 칼럼추가 : ALTER TABLE 테이블명 ADD (컬럼명 테이터 타입 [DEFAULT '값']);
● 칼럼수정
데이터 타입 변경 : ALTER TABLE 테이블명 MODIFY 컬럼명 테이터타입;
기본값 변경 : ALTERTABLE 테이블명 MODIFY 컬럼명 DEFAULT '값';
** 데이터타입 수정 시 컬럼에 저장된 데이터 크기 미만으로는 변경할 수 없다.
● 칼럼삭제
ALTER TABLE 테이블명 DROP (삭제할컬럼명);
ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명;
* 테이블에는 최소 1개 이상의 컬럼이 존재해야되기 때문에 모든 컬럼 삭제 X
(테이블이란 ? 행과 열로 이루어진 데이터베이스의 가장 기본적인 객체)
'ON > Oracle' 카테고리의 다른 글
[Oracle] 복습 (1) | 2023.06.06 |
---|---|
[Oracle] VIEW | SEQUENCE | INDEX (0) | 2023.05.24 |
[Oracle] DAY25_데이터 딕셔너리 | 제약조건 (0) | 2023.05.23 |
[Oracle] DAY24_데이터 딕셔너리 | CREATE (0) | 2023.05.22 |
[Oracle] DAY23_서브쿼리 (0) | 2023.05.22 |