오라클 데이터베이스는 관리하다 보면 처음 설계했던 테이블 구조를 변경해야 하는 일이 생깁니다. 그중에서도 컬럼 추가, 삭제 순서변경은 비교적 흔한 변경이라고 할 수 있습니다. 이번 포스팅에서는 오라클 데이터베이스에서 컬럼을 추가, 삭제하고 순서를 변경하는 방법에 대해 알아보겠습니다.
목차
1. 컬럼 추가하기
물론 처음부터 완벽하게 테이블을 설계해서 수정 안 하면 좋겠지만, 처음 테이블이 만들어질 때에서 다른 업무나 기능이 추가되면 테이블에 컬럼을 추가하는 일은 흔한 일입니다. 이를 위해서는 ALTER TABLE 문을 사용합니다.
문법
ALTER TABLE 테이블명 ADD 컬럼명 데이터_타입;
예를 들어, "employees" 테이블에 "phone_number" 컬럼을 추가하려면 다음과 같이 작성할 수 있습니다.
예제
ALTER TABLE employees ADD phone_number VARCHAR2(20);
2. 컬럼 삭제하기
컬럼을 삭제하는 일은 추가하는 것보다는 빈도가 적게 일어납니다. 안 쓰는 컬럼은 보통 그냥 두게 되는데요. 관리 차원에서 쓰지 않는 컬럼이 있다면 삭제해 주는 게 맞습니다. 이를 위해서도 ALTER TABLE 문을 사용합니다. (DB에서 Drop, Delete 같은 단어에는 무언지 모를 음산함이 숨어있습니다, 주의 또 주의합시다)
문법
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
예를 들어, "employees" 테이블에서 "phone_number" 컬럼을 삭제하려면 다음과 같이 작성할 수 있습니다.
예제
ALTER TABLE employees DROP COLUMN phone_number;
3. 컬럼 순서 변경하기
테이블 가독성이나 통일성을 위해 순서를 변경해야 할 때가 있는데요 순서 변경 시 주의해야 할 점이 있습니다. 오라클 11g 이하에서는 사실상 테이블 컬럼 변경은 명령어 몇줄로는 불가능합니다. 테이블 사용을 중지하고 데이터를 백업하고 컬럼이 추가된 테이블을 만들어 데이터를 이관하고 기존 테이블은 날리고 추가된 테이블의 테이블 명을 변경해주는 작업을 해야 합니다. 초기 데이터가 없는 경우가 아니면 저는 안합니다. 하지만 오라클 12c이상에서는 조금 간단하게 컬럼 순서를 변경할 수 있습니다. 신규 컬럼이 위치할 곳까지 INVISIBLE 시켰다가 다시 순서대로 VISIBLE로 변경하면 됩니다.
문법
ALTER TABLE 테이블명 MODIFY 컬럼명 INVISIBLE;
만약 employees 테이블에 name, phone_number 컬럼이 있는데 email 컬럼을 추가했습니다. 그럼 컬럼 순서는 name, phone_number, email 이 됩니다. 여기서 name, email, phone_number로 순서를 바꾸고 싶다면 아래 예제와 같이 해주시면 됩니다.
예제
ALTER TABLE employees MODIFY phone_number INVISIBLE;
ALTER TABLE employees MODIFY email INVISIBLE;
ALTER TABLE employees MODIFY email VISIBLE;
ALTER TABLE employees MODIFY phone_number VISIBLE;
이로써 오라클 데이터베이스에서 컬럼을 추가, 삭제하고 순서를 변경하는 방법에 대해 간략하게 알아보았습니다. 데이터베이스 구조를 유지하거나 필요한 변경을 수행할 때, 이러한 작업들을 효율적으로 수행하여 데이터베이스의 유연성을 유지하는 것이 중요합니다. 참고로 저는 DBA는 아니기 때문에 혹시 틀린 부분이 있다면 댓글로 알려주시면 수정하겠습니다.
'IT 개발' 카테고리의 다른 글
인바운드, 아웃바운드 뜻 정리 (0) | 2023.11.21 |
---|---|
[jQuery, javascript(js)] 반복문 예제 소스 포함(foreach, each, for) (0) | 2023.11.14 |
[javascript] 자바스크립트 랜덤 숫자뽑기 난수 발생 예제 (0) | 2023.08.20 |
[javascript] 자바스크립트 문자열 자르는 3가지 함수(substring, substr, slice) (0) | 2023.08.15 |
android bitmap 이미지 색반전 (0) | 2023.05.03 |
댓글