스마트웹앱콘텐츠전문가/Oracle

오라클에서 컬럼 추가하는 방법과 주의사항

9D4U 2025. 3. 24. 13:23
728x90
반응형

오라클 데이터베이스에서 컬럼을 추가하는 방법은 상대적으로 간단합니다. 데이터베이스 스키마 변경 작업은 관리자가 수행해야 하며, ALTER TABLE 명령을 사용하여 테이블에 새로운 컬럼을 추가할 수 있습니다. 이 글에서는 오라클에서 컬럼을 추가하는 방법과 몇 가지 주의사항에 대해 다루겠습니다.

 

 

img

 


1. 오라클에서 컬럼 추가하는 기본 문법

 

오라클에서 컬럼을 추가하려면, ALTER TABLE 명령을 사용하여 기존 테이블에 새로운 컬럼을 추가합니다. 기본 문법은 다음과 같습니다:

 

 

ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;

 

여기서 테이블명은 컬럼을 추가할 테이블의 이름이고, 컬럼명은 추가하려는 컬럼의 이름, 데이터타입은 컬럼에 저장할 값의 타입을 지정합니다.

 

예를 들어, EMPLOYEES 테이블에 email이라는 컬럼을 추가하고 싶다면, 다음과 같이 명령을 실행합니다:

ALTER TABLE EMPLOYEES ADD email VARCHAR2(255);

 

위 SQL 문은 EMPLOYEES 테이블에 email 컬럼을 추가하며, 이 컬럼의 데이터 타입은 VARCHAR2로, 최대 255글자를 저장할 수 있도록 설정됩니다.

 

 

 


2. 기본값 설정과 NOT NULL 제약조건 추가

 

컬럼을 추가할 때 기본값을 설정하거나 NOT NULL 제약조건을 추가할 수 있습니다. 예를 들어, salary 컬럼에 기본값을 설정하고, NOT NULL 제약을 추가하려면 아래와 같이 쿼리를 작성합니다.

 

ALTER TABLE EMPLOYEES ADD salary NUMBER(8, 2) DEFAULT 50000 NOT NULL;

 

위 명령은 salary라는 컬럼을 NUMBER(8,2) 데이터타입으로 추가하고, 기본값을 50,000으로 설정하며, NOT NULL 제약을 추가하여 반드시 값을 입력하도록 강제합니다.

 

 

 


3. 컬럼을 추가할 때의 주의사항

 

  • 기존 데이터와의 호환성: 새 컬럼을 추가할 때 기존 데이터와 호환되지 않는 데이터 타입이나 제약 조건을 추가하지 않도록 주의해야 합니다. 예를 들어, 이미 값이 존재하는 테이블에 NOT NULL 제약을 추가하면, 기존 데이터가 NULL 값을 가질 수 없는 경우 오류가 발생할 수 있습니다. 이 경우, DEFAULT 값을 지정하거나 컬럼을 추가한 후 데이터를 업데이트하여 NULL 값이 없도록 만들어야 합니다.

 

  • 컬럼 추가 후 인덱스나 제약조건 설정: 추가된 컬럼에 인덱스나 제약 조건을 설정하는 것도 중요합니다. 예를 들어, 추가된 컬럼을 자주 검색할 경우 인덱스를 추가하여 성능을 향상시킬 수 있습니다.
CREATE INDEX idx_salary ON EMPLOYEES(salary);

 

  • 성능 고려: 대용량 테이블에 컬럼을 추가할 때는 성능에 영향을 줄 수 있습니다. 컬럼 추가 작업은 테이블의 크기와 데이터 양에 따라 시간이 오래 걸릴 수 있습니다. 가능한 한 트래픽이 적은 시간대에 작업을 수행하는 것이 좋습니다.

 

 


4. 여러 컬럼을 한 번에 추가

 

여러 개의 컬럼을 한 번에 추가하려면, 여러 ADD 절을 한 명령문에 포함시킬 수 있습니다.

예를 들어, EMPLOYEES 테이블에 phone_number와 hire_date 컬럼을 동시에 추가하려면

다음과 같이 작성할 수 있습니다:

 

ALTER TABLE EMPLOYEES 
ADD (phone_number VARCHAR2(15), hire_date DATE);

 

위의 SQL 문은 EMPLOYEES 테이블에 phone_number와 hire_date 컬럼을 한 번에 추가합니다.

 

 

 

 

반응형

 

 


5. 컬럼 추가 후 데이터 업데이트

 

컬럼을 추가한 후, 기본값이 설정되어 있지 않거나 기존 데이터에 대한 초기값이 필요한 경우 UPDATE 문을 사용하여 컬럼에 값을 채울 수 있습니다.

예를 들어, salary 컬럼을 추가한 후, 모든 직원의 급여를 50,000으로 업데이트하려면 다음과 같이 실행할 수 있습니다:

 

UPDATE EMPLOYEES SET salary = 50000 WHERE salary IS NULL;

 

이 명령은 salary 컬럼에 NULL 값이 있는 모든 행에 대해 50000을 입력합니다.

 

 

 


6. 테이블 구조 변경 후 검증

 

컬럼을 추가한 후에는 테이블의 구조를 확인하여 컬럼이 제대로 추가되었는지 확인할 필요가 있습니다. 테이블의 구조를 확인하려면 DESCRIBE 명령을 사용합니다:

 

DESCRIBE EMPLOYEES;

 

이 명령은 EMPLOYEES 테이블의 모든 컬럼을 출력하며, 추가된 컬럼이 제대로 반영되었는지 확인할 수 있습니다.

 

 

 


7. 예제: 오라클에서 컬럼 추가

 

이제 실제로 컬럼을 추가하는 예제를 살펴보겠습니다.

 

예제 1: EMPLOYEES 테이블에 birthdate 컬럼을 추가합니다. 이 컬럼은 DATE 데이터타입이며, 기본값을 '2000-01-01'로 설정합니다.

ALTER TABLE EMPLOYEES ADD birthdate DATE DEFAULT TO_DATE('2000-01-01', 'YYYY-MM-DD');

 

예제 2: EMPLOYEES 테이블에 email 컬럼을 추가하고, NOT NULL 제약을 추가하여 빈 값이 입력되지 않도록 합니다.

ALTER TABLE EMPLOYEES ADD email VARCHAR2(255) NOT NULL;

 

 

 


 

 

오라클에서 테이블에 컬럼을 추가하는 방법은 매우 간단하지만, 데이터베이스 설계와 성능을 고려한 주의 깊은 작업이 필요합니다. ALTER TABLE 명령을 통해 새 컬럼을 추가하고, 기본값 설정, 제약 조건 추가, 인덱스 설정 등을 통해 데이터베이스 구조를 효율적으로 변경할 수 있습니다. 대규모 데이터베이스에서는 컬럼 추가 작업을 사전에 충분히 테스트하고, 트래픽이 적은 시간대에 수행하는 것이 좋습니다.

또한, 컬럼 추가 작업이 데이터의 무결성에 영향을 미칠 수 있으므로, 추가 작업 전에 데이터베이스 백업을 수행하고, 테스트 환경에서 충분히 검증하는 것이 중요합니다.

728x90