테이블을 변경하는 DDL
테이블 생성후 테이블 ( 의 스키마 구조 ) 을 변경하는 것은 잘 일어나지 않지만
테이블을 변경하게 된다면 ALTER 라는 명령어를 사용한다.
ALTER라는 명령어로 테이블을 변경하는 종류로는 칼럼의 추가 / 삭제 / 수정, 제약 조건의 추가 / 삭제 가 있고,
칼럼의 추가시 ALTER 라는 명령어는 ADD 와 함께 작성된다 → 1) 칼럼의 추가 ( ADD )
새로 추가한 컬럼은 테이블의 맨 마지막에 추가된다.
ALTER TABLE PLAYER_TEMP ADD ( ADDRESS VARCHAR2 ( 80 ) );
2) 칼럼의 삭제 ( DROP COLUMN )
- 삭제 후 최소 하나 이상의 칼럼이 테이블에 존재해야 한다.
ALTER TABLE PLAYER_TEMP DROP COLUMN ADDRESS;
3) 칼럼명 변경 ( RENAME COLUMN )
- 칼럼을 지우고 다시 정의하는 것이 아닌 해당 칼럼의 모든 정의가 그대로 유지되고 칼럼의 이름만 변경된다.
ALTER TABLE PLAYER_TEMP RENAME COLUMN PLAYER_ID TO PLAYER_NEW_ID;
→ PLAYER_TEMP 테이블의 스키마 구조를 변경하는데 컬럼의 이름을 변경하는 것이고,
기존에 존재하는 컬럼명중 PLAYER_ID 를 PLAYER_NEW_ID 로 변경하라는 SQL문이다.
4) 칼럼의 정의를 수정할 때 ( MODIFY )
- NOT NULL 제약조건 추가 → 테이블에 아무 행도 없거나 해당 칼럼에 NULL이 없을 때 가능하다.
- NOT NULL 제약조건 삭제는 항상 가능하다.
- NOT NULL 제약조건 추가 / 삭제 SQL문 → ALTER TABLE 테이블명 MODIFY ( 속성명 NOT NULL / NULL );
ex. ALTER TABLE PLAYER_TEMP MODIFY ( PLAYER_NAME NOT NULL );
테이블명 변경시 → RENAME 기존테이블명 TO 새로운테이블명;
( RENAME 명령어를 통해 테이블명을 변경하는 것 또한 테이블 스키마 구조를 변경하는 것에 속하는 DDL 이다 )
DROP문을 통한 테이블 삭제
- DROP TABLE 테이블명;- 관련된 제약조건을 함께 삭제할 때 → DROP TABLE 테이블명 CASCADE CONSTRAINT;
존재하는 테이블명을 조회할 때
SELECT * FROM USER_OBJECT
WHERE OBJECT_TYPE = 'TABALE';
'공부기록용' 카테고리의 다른 글
[ SQLD ] SQL - TCL / DCL 240817 (0) | 2024.08.17 |
---|---|
[ SQLD ] Function 240817 (0) | 2024.08.17 |
[ SQLD ] SQL - DDL 240815 (0) | 2024.08.16 |
[ SQLD ] SQL_Basic DML 240814 (0) | 2024.08.15 |
[ SQLD ] SQL_Basic DML 240810 (0) | 2024.08.10 |