SQL - DDL(ALTER, DROP) 3

2경빈·2024년 3월 26일
0

DB - SQL

목록 보기
12/24

DDL(Data Definition Language)

데이터 정의 언어로 오라클에서 제공하는 객체를 만들고(CREATE), 변경하고(ALTER), 삭제하는(DROP) 등
실제 데이터 값이 아닌 데이터의 구조 자체를 정의하는 언어로 DB 관리자, 설계자가 주로 사용한다.

ALTER
오라클에서 제공하는 객체를 수정하는 구문이다.

테이블 수정
[문법]
ALTER TABLE 테이블명 수정할 내용;

* 수정할 내용
1) 칼럼 추가/수정/삭제
2) 제약 조건 추가/삭제 --> 수정은 불가능(삭제한 후 새로 추가해야 한다.)
3) 테이블명/ 칼럼명 / 제약조건명 변경

1) 칼럼 추가/수정/삭제

  • 1-1) 칼럼 추가(ADD) : ALTER TALBE 테이블명 ADD 칼럼명 테이터타입 [DEFAULT 기본값];

CNAME 칼럼을 테이블 맨 뒤에 추가한다.
기본값을 지정하지 않으면 새로 추가된 칼럼은 NULL값으로 채워진다.

  • 1-2) 칼럼 수정(MODIFY)

데이터 타입 변경 : ALTER TABLE 테이블명 MODIFY 칼럼명 변경할 데이터타입;
기본값 변경 : ALTER TABLE 테이블명 MODIFY 칼럼명 DEFALUT 변경할 기본값;

  • 1-3) 칼럼 삭제 (DROP COLUMN) : ALTER TABLE 테이블명 DROP COLUMN 칼럼명;

데이터 값이 기록되어 있어도 같이 삭제된다. (단, 삭제된 칼럼 복구는 불가능)
테이블에는 최소 한 개의 칼럼은 존재해야 한다.
참조되고 있는 칼럼이 있다면 삭제가 불가능하다.

2) 제약조건 추가/삭제

  • 2-1) 제약조건 추가

PRIMARY KEY : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] PRIMARY KEY(칼럼명);
FOREIGN KEY : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] FOREIGN KEY(칼럼명) REFERENCES 테이블명 [(칼럼명)];
UNIQUE : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] UNIQUE(칼럼명);
CHECK : ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] CHECK(칼럼에 대한 조건);
NOT NULL : ALTER TABLE 테이블명 MODIFY 칼럼명 [CONSTRAINT 제약조건명] NOT NULL;

  • 2-2) 제약조건 삭제

NOT NULL : ALTER TABLE 테이블명 MODIFY 칼럼명 NULL;
나머지 : ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;

* 제약조건 수정은 불가능하다. 즉, 삭제 후 다시 제약 조건을 추가해야 한다.

3) 테이블명/칼럼명/제약조건명 변경

3-1) 칼럼명 변경 : ALTER TABLE 테이블명 RENAME COLUMN 기존칼럼명 TO 변경할칼럼명;

3-2) 제약조건명 변경 : ALTER TABLE 테이블명 RENAME CONSTRAINT 기존제약조건명 TO 변경할제약조건명;

3-3) 테이블명 변경

1) ALTER TABLE 테이블명 RENAME TO 변경할테이블명;
2) RENAME 기존테이블명 TO 변경할테이블명;
DEPT_COPY 테이블의 이름을 DEPT_TEST로 변경

DROP
오라클에서 제공하는 객체를 삭제하는 구문이다.

* 단, 참조되고 있는 부모 테이블은 함부로 삭제가 되지 않는다.
만약에 삭제하고자 한다면

1) 자식 테이블 먼저 삭제한 후 부모 테이블을 삭제하는 방법
2) 부모 테이블을 삭제할 때 제약조건도 함께 삭제하는 방법

*학원에서는 실제로 우리가 테이블을 수정, 삭제 등 관여하는 일은 거의 없고, 있다면 그때 검색해서 찾아보면 된다고 한다. 만약 내가 이러한 작업을 할 일이 생긴다면, 그 때는 코딩 레벨이 올라가 굳이 예문을 보지 않아도 사용할 수 있기 때문에 여기서는 굳이 예문을 작성하지 않겠다.

profile
eggs before hatching

0개의 댓글