< DDL 데이터 정의 언어 >
객체들을 생성(CREATE), 변경(ALTER), 삭제(DROP) 하는 구문
1. ALTER
객체를 변경하는 구문
[표현법]
ALTER TABLE 테이블명 변경할 내용;
*변경할 내용
1) 컬럼 추가/수정/삭제
2) 제약조건
3) 컬럼명 /제약조건명/테이블명 수정
1) 컬럼 추가/ 수정/ 삭제
1_1) 컬럼 추가 (ADD) : ADD 컬럼명 자료형 [DEFAULT 기본값]
예시) DEPT_COPY에 LNAME 컬럼 추가 (기본값 지정)
ALTER TABLE DEPT_COPY ADD LNAME VARCHAR2(20) DEFAULT '한국';
1_2) 컬럼 수정 (MODIFY)
> 데이터 타입 수정 : MODIFY 컬럼명 바꾸고자하는 데이터타입
> DEFAULT값 수정 : MODIFY 컬럼명 DEFAULT 바꾸고자하는 기본값
예시) DEPT_TITLE컬럼을 VARCHAR2(40) /LOCATION_ID 컬럼을 VARCHAR2(2) /
LNAME컬럼의 기본값을 '미국'으로 변경
ALTER TABLE DEPT_COPY
MODIFY DEPT_TITLE VARCHAR2(40)
MODIFY LOCATION_ID VARCHAR2(2)
MODIFY LNAME DEFAULT '미국'; --다중변경 가능
1_3) 컬럼 삭제 (DROP COLUMN) : DROP COLUMN 삭제하고자하는 컬럼명
ALTER TABLE EMP_NEW DROP COLUMN SALARY;
ALTER TABLE EMP_NEW DROP COLUMN EMP_NAME;
ALTER TABLE EMP_NEW DROP COLUMN HIRE_DATE;
ALTER TABLE EMP_NEW DROP COLUMN EMP_ID; --> 오류발생
--> 최소한개의 컬럼은 존재해야하기 때문에 삭제불가
2) 제약조건 추가 / 삭제
2_1) 제약조건 추가
PRIMARY KEY : ADD PRIMARY KEY(컬럼명)
FOREIGN KEY : ADD FOREIGN KEY(컬럼명) REFERENCES 참조할테이블명[(컬럼명)] [삭제옵션]
UNIQUE : ADD UNIQUE(컬럼명)
CHECK : ADD CHECK(컬럼에 대한 조건)
NOT NULL : MODIFY 컬럼명 NOT NULL|NULL
예시) DEPT_COPY 테이블로 부터 DEPT_ID에 PRIMARY KEY제약조건 추가
/DEPT_TITLE 에 UNIQUE제약조건 추가/LNAME에 NOT NULL 추가
ALTER TABLE DEPT_COPY
ADD CONSTRAINT DCOPY_PK PRIMARY KEY(DEPT_ID)
ADD UNIQUE (DEPT_TITLE)
MODIFY LNAME CONSTRAINT DCOPY_NN NOT NULL;
2_2) 제약조건 삭제
DROP CONSTRAINT 제약조건명 / MODIFY 컬럼명 NULL (NOT NULL같은경우)
ALTER TABLE DEPT_COPY DROP CONSTRAINT DCOPY_PK;
ALTER TABLE DEPT_COPY
DROP CONSTRAINT SYS_C007166
MODIFY LNAME NULL;
3) 컬럼명 / 제약조건명 / 테이블명 변경 (RENAME)
3_1) 컬럼명 변경 : RENAME COLUMN 기존컬럼명 TO 바꿀컬럼명
ALTER TABLE DEPT_COPY RENAME COLUMN DEPT_TITLE TO DEPT_NAME;
3_2) 제약조건명 변경 : RENAME CONSTRAINT 기존제약조건명 TO 바꿀제약조건명
ALTER TABLE DEPT_COPY RENAME CONSTRAINT SYS_C007162 TO LID_NN;
3_3) 테이블명 변경 : RENAME [기존테이블명] TO 바꿀테이블명
ALTER TABLE DEPT_COPY RENAME TO DEPT_TEST;
2. DROP
테이블 삭제
DROP TABLE DEPT_TEST;
>> 단, 어딘가에 참조되고있는 부모테이블은 함부로 삭제 안됨
*만약에 삭제하고자 한다면,
방법1) 자식테이블 먼저 삭제 후 부모테이블 삭제하는 방법
방법2) DROP TABLE 테이블명 CASCADE CONSTRAINT;
부모테이블만 삭제하는데 제약조건까지 같이 삭제하는 방법
'ORACLE' 카테고리의 다른 글
ORACLE 10. TCL (COMMIT, ROLLBACK,SAVE POINT) (0) | 2022.11.24 |
---|---|
ORACLE 09. DCL(GRANT, REVOKE) (0) | 2022.11.24 |
ORACLE 07. DML (DELETE) (0) | 2022.11.23 |
ORACLE 07. DML (UPDATE) (0) | 2022.11.23 |
ORACLE 07. DML (INSERT) (0) | 2022.11.23 |