본문 바로가기
DB 기본 개념 다지기

MSSQL ALTER TABLE 열 추가 ADD/삭제 DROP COLUMN/변경 ALTER COLUMN

by 양블로그 2024. 2. 7.
반응형

 

기존 테이블에 새로운 열을 추가하거나 기존 열을 삭제할 수 있습니다. 하지만 테이블 구조가 변경되지 않도록 업무를 분석해서 정확한 형태의 테이블을 만들어야 함이 무엇보다도 중요합니다.

 

열 추가

다음은 ALTER TABLE ~ ADD 문을 사용하여 새로운 열을 추가하는 기본적인 구문입니다.

ALTER TABLE 테이블명
ADD 새로운_열명 데이터_유형 [제약조건]
  • 테이블명: 열을 추가할 대상 테이블의 이름입니다.
  • 새로운_열명: 새로 추가할 열의 이름입니다.
  • 데이터_유형: 새로운 열의 데이터 유형을 지정합니다.
  • [제약조건]: 선택적으로 새로운 열에 제약 조건을 추가할 수 있습니다. 예를 들어, NOT NULL 제약 조건을 추가할 수 있습니다.

 

예를 들어, 'employees' 테이블에 새로운 'department_id' 열을 추가하는 경우를 살펴보겠습니다.

ALTER TABLE employees
ADD department_id INT


위의 코드는 'employees' 테이블에 'department_id'라는 INT 형식의 새로운 열을 추가합니다. 이 열은 어떤 부서에 해당하는지를 나타내는 열일 수 있습니다.


열에 제약 조건 추가

열을 추가할 때 제약 조건을 함께 추가할 수 있습니다. 예를 들어, 새로운 'salary' 열에 NOT NULL 제약 조건을 추가하는 경우 입니다.

ALTER TABLE employees
ADD salary DECIMAL(10,2) NOT NULL


위의 코드는 'employees' 테이블에 'salary'라는 DECIMAL 형식의 새로운 열을 추가하고, 이 열에 NOT NULL 제약 조건을 추가합니다. 이렇게 하면 'salary' 열에는 NULL 값이 허용되지 않습니다.

열 추가 시 주의할 점
열을 추가할 때 기존 데이터를 유지하면서 추가하는 경우, 기존 데이터에 새로운 열의 기본값을 설정하는 것이 좋습니다.
테이블이 큰 경우 열을 추가하는 작업은 시간이 오래 걸릴 수 있으며, 데이터베이스 환경에 따라 잠금이 발생할 수 있으므로 주의해야 합니다.

 

반응형

 

열 삭제

MSSQL에서 열을 삭제하는 방법은 ALTER TABLE ~ DROP COLUMN 문을 사용하여 수행할 수 있습니다. 

ALTER TABLE 테이블명
DROP COLUMN 열명
  • 테이블명: 열을 삭제할 대상 테이블의 이름입니다.
  • 열명: 삭제할 열의 이름입니다.

예를 들어, 'employees' 테이블에서 'department_id' 열을 삭제하는 경우를 살펴보겠습니다:

ALTER TABLE employees
DROP COLUMN department_id


이제 'employees' 테이블에서 'department_id' 열이 삭제되었습니다.

 

열 삭제 시 주의할 점

  1. 해당 열에 저장된 데이터는 모두 삭제됩니다. 따라서 열을 삭제하기 전에 데이터베이스의 중요한 데이터를 백업하는 것이 좋습니다.
  2. 열을 삭제하기 전에 해당 열을 참조하는 제약 조건, 뷰 또는 프로시저가 있는지 확인해야 합니다. 열을 참조하는 다른 객체가 있는 경우 이러한 객체를 업데이트해야 할 수 있습니다.
  3. 테이블이나 데이터베이스 환경에 따라 열을 삭제하는 작업이 시간이 오래 걸릴 수 있으며, 잠금이 발생할 수 있으므로 주의해야 합니다.

열 변경

MSSQL에서 열을 변경하는 방법은 ALTER TABLE ~ ALTER COLUMN 문을 사용하여 수행할 수 있습니다. 

ALTER TABLE 테이블명
ALTER COLUMN 열명 새로운_데이터_유형 [새로운_제약조건]
  • 테이블명: 열을 변경할 대상 테이블의 이름입니다.
  • 열명: 변경할 열의 이름입니다.
  • 새로운_데이터_유형: 변경할 열의 새로운 데이터 유형을 지정합니다.
  • [새로운_제약조건]: 선택적으로 변경된 열에 새로운 제약 조건을 추가할 수 있습니다.

예를 들어, 'employees' 테이블에서 'salary' 열의 데이터 형식을 변경하고 NOT NULL 제약 조건을 추가하는 경우를 살펴보겠습니다:

ALTER TABLE employees
ALTER COLUMN salary DECIMAL(10,2) NOT NULL


이제 'employees' 테이블에서 'salary' 열의 데이터 형식이 DECIMAL(10,2)로 변경되었고, 해당 열에는 NULL 값이 허용되지 않는 NOT NULL 제약 조건이 추가되었습니다.

열 변경 시 주의할 점

  1. 변경된 데이터 유형이 기존 데이터와 호환되어야 합니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다.
  2. 열을 변경하면 해당 열을 참조하는 제약 조건, 뷰 또는 프로시저가 있는지 확인해야 합니다. 변경된 열을 참조하는 다른 객체가 있는 경우 이러한 객체를 업데이트해야 할 수 있습니다.
  3. 테이블이나 데이터베이스 환경에 따라 열을 변경하는 작업이 시간이 오래 걸릴 수 있으며, 잠금이 발생할 수 있으므로 주의해야 합니다.
반응형