오라클에서 테이블의 컬럼을 추가하거나 삭제, 변경하는 작업이 자주 발생할 수 있기 때문에 명령어들을 알아두면 좋습니다.
추가
오라클 테이블에 컬럼을 추가하기 위해서는 ALTER TABLE 을 사용합니다.
컬럼을 추가하면 테이블 컬럼의 마지막 순서에 추가가 되며, 컬럼 순서의 중간에 컬럼을 추가할 수는 없습니다.
오라클 12c 부터는 컬럼의 순서를 변경할 수 있도록 기능이 추가 되었으며, 이전 버전에서 컬럼 순서를 변경하기 위해서는 테이블을 재생성 해야 했습니다.
--컬럼 추가 1
ALTER TABLE emp ADD email VARCHAR(25);
--컬럼 추가 2 (기본 값, NOT NULL 지정)
ALTER TABLE emp ADD email VARCHAR(25) DEFAULT 'test@test.com' NOT NULL;
삭제
--컬럼 삭제
ALTER TABLE emp DROP COLUMN email;
순서 변경
오라클 12c 이상의 버전에서는 컬럼 순서를 변경할 대는 컬럼의 INVISIBLE, VISIBLE 속성을 사용하면 됩니다.
컬럼을 INVISIBLE(숨김) 으로 변경 후 다시 VISIBLE(보이기) 로 변경하면 컬럼의 순서가 마지막으로 변경이 됩니다.
순서를 변경할 앞의 컬럼을 모두 INVISIBLE 로 변경 후 다시 VISIBLE 로 변경하면 해당 컬럼이 순서가 앞으로 이동하게 됩니다.
--컬럼 숨김
ALTER TABLE emp MODIFY job INVISIBLE;
ALTER TABLE emp MODIFY mgr INVISIBLE;
ALTER TABLE emp MODIFY hiredate INVISIBLE;
ALTER TABLE emp MODIFY sal INVISIBLE;
ALTER TABLE emp MODIFY comm INVISIBLE;
ALTER TABLE emp MODIFY deptno INVISIBLE;
--컬럼 보이기
ALTER TABLE emp MODIFY job VISIBLE;
ALTER TABLE emp MODIFY mgr VISIBLE;
ALTER TABLE emp MODIFY hiredate VISIBLE;
ALTER TABLE emp MODIFY sal VISIBLE;
ALTER TABLE emp MODIFY comm VISIBLE;
ALTER TABLE emp MODIFY deptno VISIBLE;
컬럼의 데이터, 길이, 컬럼명 수정
오라클에서 컬럼을 변경 할 경우 ALTER TABLE 을 사용하며, 컬럼의 데이터 타입, 길이를 수정할 때는 MODIFY, 컬럼명을 수정할 때는 RENAME COLUMN 을 사용하면 됩니다.
컬럼 데이터 타입 변경
--데이터 타입 변경 : NUMBER(4) -> VARCHAR2(4)
ALTER TABLE emp MODIFY editid VARCHAR2(4);
ALTER TABLE 테이블명 MODIFY 컬럼명 새로운 데이터타입(길이)
데이터 타입을 변경해야 하는 경우 해당 컬럼의 값을 모두 지워야 변경이 가능합니다.
컬럼 길이(크기) 변경
--데이터 길이(크기) 변경 : VARCHAR2(4) -> VARCHAR2(5)
ALTER TABLE emp MODIFY editid VARCHAR2(5);
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입(새로운 길이)
컬럼 길이를 변경할 경우 변경할 컬럼 길이보다 길이가 긴 값이 있으면 안됩니다.
컬럼 명 변경
--컬럼명 변경 : editid -> edit_id
ALTER TABLE emp RENAME COLUMN editid TO edit_id
ALTER TABLE 테이블명 RENAME COLUMN 이전 컬럼명 TO 새로운 컬럼명
컬럼 기본값, NOT NULL 변경
--기본 값 지정
ALTER TABLE emp MODIFY editid VARCHAR2(5) DEFAULT '1000';
--NOT NULL 지정
ALTER TABLE emp MODIFY editid VARCHAR2(5) NOT NULL;
--NOT NULL 제거(변경)
ALTER TABLE emp MODIFY editid VARCHAR2(5) NULL;
--기본 값 + NOT NULL 지정
ALTER TABLE emp MODIFY editid VARCHAR2(5) DEFAULT '1000' NOT NULL;
'SQL' 카테고리의 다른 글
오라클 SQL - ORDER BY (1) | 2024.12.17 |
---|---|
오라클 IN 연산자 (1) | 2024.12.17 |
오라클 테이블 만드는 방법( CREATE, PK, INDEX, COMMENT ) (0) | 2024.12.16 |
SQL 기본키, 외래키 (1) | 2024.12.09 |
SQL Developer 으로 Tablespace 생성 (2) | 2024.12.09 |