본문 바로가기
DBMS/ORACLE

[ORACLE] 테이블 생성(CREATE), 수정(ALTER), 삭제(DROP) 하기

by 썸머워즈 2019. 2. 3.
반응형

1. 테이블 생성 (CREATE)

▷ 구문

CREATE TABLE [테이블명]( [컬럼이름][데이터타입]([사이즈]) );

 

▷ 예제)

-- 테이블 생성
--CREATE TABLE [테이블 명](
-- [컬럼이름][데이터타입]([사이즈])
--);
CREATE TABLE employees(
    emp_no NUMBER(20),
    first_name VARCHAR2(5),
    last_name VARCHAR2(10),
    email VARCHAR2(30),
    mobile VARCHAR2(15),
    salary NUMBER(20),
    reg_date DATE DEFAULT SYSDATE
);

 

2. 테이블 수정 (ALTER)

▷ 구문

컬럼 이름 수정 : ALTER TABLE[테이블 이름] RENAME COLUMN [변경전 이름] TO [변경 후 이름]
컬럼 추가 : ALTER TABLE[테이블 이름] ADD ([컬럼명][타입]([사이즈]));
컬럼 수정 : ALTER TABLE[테이블 이름] MODIFY ([수정할 컬럼명][수정할 타입][DEFAULT 관련][NOT NULL]);
  > DEFAULT 나 NOT NULL 은 생략가능...
컬럼 삭제 : ALTER TABLE[테이블 이름] DROP COLUMN([컬럼명]);

 

▷ 예제)

--테이블 수정
--ALTER TABLE[테이블 이름]...
--1) 컬럼 이름 수정 : 기존 데이터가 있으면 안됨(삭제됨)
--ALTER TABLE[테이블 이름] RENAME COLUMN[변경전 이름]TO[변경 후 이름]
ALTER TABLE employees RENAME COLUMN last_name TO family_name;

--2) 컬럼 추가
--ALTER TABLE[테이블 이름] ADD ([컬럼 명][타입]);
ALTER TABLE employees ADD (depart_no VARCHAR2(10));
ALTER TABLE employees ADD (commission VARCHAR2(10));
ALTER TABLE employees ADD (etc VARCHAR2(100));

--3) 컬럼 데이터 타입 수정 : 기존 데이터가 있으면 안됨.
--ALTER TABLE[테이블 이름] MODIFY[컬럼명][타입];
ALTER TABLE employees MODIFY commission NUMBER(3,0);
ALTER TABLE employees MODIFY first_name NVARCHAR2(10);


--4) 컬럼 삭제 : 데이터 삭제(해당 컬럼에 들어가있는 데이터)
--ALTER TABLE[테이블 이름] DROP COLUMN[컬럼명];

MODIFY 시 고려사항은 다음과 같다.
 1) 해당 컬럼의 크기를 늘릴수는 있지만 줄이지는 못한다.(기존 데이터 훼손 방지)
 2) 해당 컬럼이 NULL 값만 가지고 있거나 테이블에 아무 행도 없으면 컬럼의 폭을 줄일 수 있다.
 3) 해당 컬럼이 NULL 값만을 가지고 있으면 데이터 유형을 변경할 수 있다.
 4) 해당 컬럼의 DEFAULT 값을 바꾸면 변경 작업 이후 발생하는 행 삽입에만 영향을 미치게 된다.
 5) 해당 컬럼에 NULL 값이 없을 경우에만 NOT NULL 제약조건을 추가할 수 있다.

 

3. 테이블 삭제 (DROP)

▷ 구문

DROP TABLE[삭제할 테이블 이름];

 

▷ 예제)

--테이블 삭제
--DROP TABLE[삭제할 테이블 이름]
DROP TABLE  testtable;
반응형


댓글

TOP