오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

ALTER TABLE로 컬럼을 추가, 수정, 삭제하기 위해서는 다음과 같은 명령어를 사용합니다.

ADD COLUMN 절을 사용하여 새로운 컬럼을 추가합니다.

MODIFY COLUMN절을 사용하여 기존 컬럼을 수정합니다.

DROP COLUMN절을 사용하여 기존 컬럼을 삭제합니다.

우선 컬럼을 추가하는것을 알아보겠습니다.

새로운 컬럼은 테이블 맨 마지막에 추가되므로 원하는 위치에 만들어 넣을 수 없습니다. 또한 이미 이전에 추가해 놓은 로우가 존재한다면 그 로우에도 컬럼이 추가되지만, 컬럼값은 NULL값으로 입력됩니다.

컬럼추가 형식은 이렇습니다.

ALTER TABLE table_name ADD(column_name, data_type expr, ...);

이렇게봐서는 잘 모르시겠죠? 예제를 보도록 하죠.

desc test; 입력하니깐 아래 그림처럼 나오네요.


컬럼은 총 4개로서 ID, TITLE, CONTENT, FILENAME 이렇게 나오네요.

여기에다가 제가 TEST 컬럼을 추가해 보도록 하겠습니다.

ALTER TABLE test add(TEST NUMBER(4));

이렇게 한 다음 다시 결과를 보니깐


TEST 컬럼이 추가된것이 보이시죠?

컬럼의 형식은 NUMBER(4) 로 주었습니다.

컬럼은 추가되었지만 안에는 NULL 값이 들어가있는 상태라서 넣고자 하는 값들을 넣으시면 되겠습니다.

다음 포스트에서는 컬럼 속성 변경에 대해서 알아보겠습니다.

이해안되시는 부분은 댓글 남겨주세요.

여행을 개발하다

데이터베이스/MariaDB

[MariaDB] Add Column(컬럼 추가) - FIRST, AFTER 옵션 사용

yhtragramming 2021. 9. 28. 14:50

오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

MariaDB를 사용하여 개인 프로젝트를 진행하다가, 이미 생성되어 있는 테이블에 컬럼을 추가해야 할 일이 생겼다.

MariaDB도 컬럼을 추가하는 SQL은 일반적인 데이터베이스에 사용하는 DCL과 다를 바가 없다.

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

하지만 다른 DBMS(Oracle, MS-SQL...)처럼, 이미 생성되어 있는 테이블에 컬럼을 추가할 때는 기본적으로 가장 마지막 위치에 추가된다는 점.

이 말이 무엇이냐 하면...

가령 어떤 테이블에 A~C 컬럼이 있는데, D라는 신규 컬럼을 추가한다면 당연히 C 컬럼 뒤에 추가된다는 이야기다.

오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

하지만 이미 추가된 컬럼들 사이에 신규 컬럼을 넣고 싶을 때가 분명 있었다. 이는 다른 DBMS에서도 마찬가지.

오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

MariaDB에서는 'ADD COLUMN' DCL에 FIRST/AFTER 옵션을 지원하여, DBA 혹은 개발자가 원하는 위치에 컬럼을 추가할 수 있다.

예를 들어, 'COLUMN_1'이라는 컬럼 하나를 갖고 있는 테이블 'TB_TEMP_TABLE'이 있다고 가정해 본다. 이 테이블의 원하는 위치에 컬럼을 추가해 본다. 단, 추가되는 컬럼의 데이터 타입은 편의상 'VARCHAR(100)'로 통일한다.

오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

1. 가장 첫 번째에 추가(FIRST)

ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 FIRST
ALTER TABLE TB_TEMP_TABLE ADD COLUMN COLUMN_2 VARCHAR(100) FIRST
오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

2. 특정 컬럼 뒤에 추가(AFTER)

ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 AFTER 컬럼명
ALTER TABLE TB_TEMP_TABLE ADD COLUMN COLUMN_3 VARCHAR(100) AFTER COLUMN_1
오라클 원하는 위치에 컬럼 추가 - olakeul wonhaneun wichie keolleom chuga

가장 간단하면서도 유용한 컬럼의 순서를 지정하여 추가하는 방법.

테이블을 설계했을 때는 완벽하다고 생각했는데, 막상 개발을 하다 보니 생각지도 못한 구멍들이 하나둘씩 보인다.

MariaDB의 FIRST/AFTER 옵션 덕에, 잘못 생성한 테이블을 drop 하고 다시 생성하는 수고로움을 덜 수 있었다.

지금까지 MariaDB의 ADD COLUMN, 그중에서도 컬럼의 순서를 지정하여 추가하는 FIRST/AFTER 옵션에 대해 알아보았다.

감사합니다 : )