메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
 
5번째 줄: 5번째 줄:
|내용=
|내용=
'''ALTER TABLE'''은 오라클 데이터베이스에서 기존 테이블의 구조를 변경하는 DDL(Data Definition Language) 명령어입니다.  
'''ALTER TABLE'''은 오라클 데이터베이스에서 기존 테이블의 구조를 변경하는 DDL(Data Definition Language) 명령어입니다.  
:테이블 생성 후 다양한 수정 작업을 수행할 수 있습니다.
: 테이블 생성 후 다양한 수정 작업을 수행할 수 있습니다.
}}
}}



2025년 5월 27일 (화) 00:12 기준 최신판

  1. 오라클 ALTER TABLE 문

개요

menu_book ALTER TABLE은 오라클 데이터베이스에서 기존 테이블의 구조를 변경하는 DDL(Data Definition Language) 명령어입니다.
테이블 생성 후 다양한 수정 작업을 수행할 수 있습니다.


주요 기능

  • 컬럼 추가/삭제/수정
  • 제약조건 추가/삭제/활성화/비활성화
  • 테이블 이름 변경
  • 테이블스페이스 이동
  • 파티션 관리
  • 스토리지 파라미터 변경

기본 구문 구조

ALTER TABLE table_name
[ADD (column_definition | constraint_definition)]
[MODIFY (column_definition)]
[DROP (COLUMN column_name | CONSTRAINT constraint_name)]
[RENAME TO new_table_name]
[other_options];

ALTER TABLE 유형

컬럼 추가

-- 단일 컬럼 추가
ALTER TABLE employees ADD (email VARCHAR2(100));

-- 여러 컬럼 추가
ALTER TABLE employees ADD (
    phone VARCHAR2(20),
    hire_date DATE DEFAULT SYSDATE
);

컬럼 수정

-- 데이터 타입 변경
ALTER TABLE employees MODIFY (email VARCHAR2(150));

-- DEFAULT 값 변경
ALTER TABLE employees MODIFY (hire_date DEFAULT CURRENT_DATE);

-- NULL 허용 변경
ALTER TABLE employees MODIFY (phone NOT NULL);

컬럼 삭제

-- 단일 컬럼 삭제
ALTER TABLE employees DROP COLUMN email;

-- 여러 컬럼 삭제
ALTER TABLE employees DROP (phone, hire_date);

제약조건 관리

-- 기본키 추가
ALTER TABLE employees ADD CONSTRAINT emp_pk PRIMARY KEY (emp_id);

-- 외래키 추가
ALTER TABLE employees ADD CONSTRAINT dept_fk 
FOREIGN KEY (dept_id) REFERENCES departments(dept_id);

-- 제약조건 삭제
ALTER TABLE employees DROP CONSTRAINT emp_pk;

-- 제약조건 비활성화
ALTER TABLE employees DISABLE CONSTRAINT dept_fk;

-- 제약조건 활성화
ALTER TABLE employees ENABLE CONSTRAINT dept_fk;

테이블 이름 변경

ALTER TABLE employees RENAME TO staff;

컬럼 이름 변경

ALTER TABLE employees RENAME COLUMN emp_id TO employee_id;

테이블스페이스 이동

ALTER TABLE employees MOVE TABLESPACE new_tablespace;

고급 기능

파티션 테이블 수정

-- 파티션 추가
ALTER TABLE sales ADD PARTITION p_2024 
VALUES LESS THAN (TO_DATE('2025-01-01', 'YYYY-MM-DD'));

-- 파티션 삭제
ALTER TABLE sales DROP PARTITION p_2020;

LOB 컬럼 스토리지 변경

ALTER TABLE documents MODIFY LOB(resume) (
    STORAGE (NEXT 10M)
    CHUNK 16K
);

읽기 전용/쓰기 가능 설정

-- 읽기 전용으로 변경
ALTER TABLE employees READ ONLY;

-- 쓰기 가능으로 변경
ALTER TABLE employees READ WRITE;

주의사항

  • 대부분의 ALTER TABLE 작업은 테이블 잠금을 발생시킴
  • 데이터 타입 변경 시 기존 데이터와 호환성 확인 필요
  • 제약조건 추가 시 기존 데이터가 조건을 만족하는지 확인
  • 프로덕션 환경에서는 사용량이 적은 시간대에 수행 권장

관련 항목