DDL : DATA DEFINITION LANGUAGE
데이터 정의 언어
1. ALTER
객체 구조를 수정하는 구문
< 테이블을 수정 >
ALTER TABLE 테이블명 수정할내용;
- 수정할 내용
1) 컬럼 추가 / 수정 / 삭제
2) 제약조건 추가 / 삭제 => 수정은 불가 (수정하고자하면 삭제 후 새롭게 추가)
3) 테이블명 / 컬럼명 / 제약조건명 변경
1)컬럼 추가 / 수정 / 삭제
1_1) 컬럼 추가 (ADD) : ADD 추가할컬럼명 데이터타입 /* DEFAULT 기본값 */
1-2) 컬럼 수정 (MODIFY)
-- 데이터타입 수정 : MODIFY 수정할 컬럼명 바꾸고자하는 데이터타입
-- DEFAULT 값 수정 : MODIFY 수정할 컬럼명 DEFAULT 바꾸고자하는 기본값
-- 현재 변경하고자하는 컬럼에 이미 담겨있는 값과 완전히 다른 타입으로 변경은 불가하다.
-- 예) 문자 -> 숫자 (X) / 문자열 사이즈 축소(X) / 문자열 사이즈 확대(O)
1_3) 컬럼 삭제(DROP COLUNM) : DROP COLUMN 삭제하고자하는 컬럼명
테이블에 최소 한개의 컬럼은 존재해야 함으로 마지막 LNAME 컬럼은 삭제가 되지 않는다.
※ DDL구문은 복구불가능으로 ROLLBACK이 되지 않는다. (한번 삭제한 컬럼은 복구 불가능)
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;
나만의 제약조건명을 부여하는 방법 : CONSTRAINT 제약조건명 제약조건을 쓴다.
써도되고 안써도 되고 생략이 가능하다.
2_2) 제약조건 삭제
PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK
: DROP CONSTAINT 제약조건명
NOT NULL
: MODIFY 컬럼명 NULL
3) 컬럼명 / 제약조건명 / 테이블명 변경(RENAME)
3_1) 컬럼명 변경 : RENAME COLUMN 기존컬럼명 TO 바꿀컬럼명;
3_2) 제약조건명 변경 : RENAME CONSTRAINT 기존제약조건명 TO 바꿀제약조건명;
3_3) 테이블명 변경 : RENAME 기존테이블명 TO 바꿀테이블명;
2. DROP
객체를 삭제하는 구문
※예외) 어딘가에서 참조되고 있는 부모테이블은 삭제되지 않는다.
그럼에도 꼭 삭제를 하고 싶다면?
1. 자식테이블을 먼저 삭제한 후 부모테이블을 삭제한다.
2. 부모테이블만 삭제하는데 맞물려있는 제약조건도 함께 삭제하는 법
'*SQL_Oracle*' 카테고리의 다른 글
TCL < COMMIT, ROLLBACK > (0) | 2021.11.11 |
---|---|
DCL < GRANT, REVOKE> (0) | 2021.11.11 |
DML <INSERT, UPDATE, DELETE> (0) | 2021.11.11 |
DDL <CREATE> SUBQUERY를 이용한 테이블생성 (0) | 2021.11.10 |
DDL < CREATE > (0) | 2021.11.08 |