[Oracle] 오라클 테이블 만드는 방법 (CREATE, PK, INDEX, COMMENT)

오라클에서 테이블을 만들기 위해서는 CREATE TABLE을 사용하여 컬럼명, 데이터 타입을 정의하여 테이블을 생성하면 된다. 아래는 EMP(사원) 테이블을 만드는 예제이다.

 

오라클 테이블 생성

① 테이블 명, ② 컬럼 명

 - 테이블, 컬럼 명의 길이는 30byte 문자 (Oracle 12c R2 부터는 128byte)

 - 문자(영문, 한글), 숫자, 특수문자(_, $, #)만 가능

 - 반드시 문자로 시작

③ 데이터 타입

 - NUMBER(4) : 4자리의 가변 길이 정수

 - NUMBER(7,2) : 7자리의 가변 길이 정수와 2자리의 가변길이 소수

 - VARCHAR2(10) : 10byte의 가변 길이 문자

④ 기본 값

 - 테이블에 값이 입력(INSERT) 될 때 값이 없으면 기본으로 생성되는 값

 - DEFAULT [값(문자, 숫자, 날짜)], 사용하지 않으면 생략 가능

⑤ NULL 허용 여부

 - 기본 값은 NULL 허용이며, NOT NULL 선언 시 해당 컬럼은 NULL 값을 허용하지 않음

 

테이블 생성

CREATE TABLE emp 
( 
    empno       NUMBER(4)	NOT NULL,
    ename       VARCHAR2(10),
    job         VARCHAR2(9),
    mgr         NUMBER(4),
    hiredate    DATE,
    sal         NUMBER(7,2),
    comm        NUMBER(7,2),
    deptno      NUMBER(2)
);

 

PK 생성

ALTER TABLE [테이블명] ADD CONSTRAINT [PK명] PRIMARY KEY ([컬럼명,컬럼명...])

ALTER TABLE emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno);

 

테이블 설명 (COMMENT)

COMMENT ON TABLE emp IS '사원정보';

 

컬럼 설명 (COMMENT)

COMMENT ON COLUMN emp.empno IS '사원번호';

 

인덱스 생성

CREATE INDEX [인덱스명] ON [테이블명]([컬럼명,컬럼명...])

CREATE INDEX emp_idx01 ON emp(job, deptno);

 

테이블 생성 (PK, COMMENT 포함)

CREATE TABLE emp 
( 
    empno       NUMBER(4)	NOT NULL,
    ename       VARCHAR2(10),
    job         VARCHAR2(9),
    mgr         NUMBER(4),
    hiredate    DATE,
    sal         NUMBER(7,2),
    comm        NUMBER(7,2),
    deptno      NUMBER(2),	
    CONSTRAINT emp_pk PRIMARY KEY (empno)
);

COMMENT ON TABLE emp IS '사원정보';

COMMENT ON COLUMN emp.empno IS '사원번호';
COMMENT ON COLUMN emp.ename IS '성명';
COMMENT ON COLUMN emp.job IS '직군';
COMMENT ON COLUMN emp.mgr IS '직속상사';
COMMENT ON COLUMN emp.hiredate IS '입사일';
COMMENT ON COLUMN emp.sal IS '급여';
COMMENT ON COLUMN emp.comm IS '보너스';
COMMENT ON COLUMN emp.deptno IS '부서코드';

 

INSERT INTO emp VALUES(7839, 'KING', 'PRESIDENT', NULL, TO_DATE('1981-11-17', 'yyyy-mm-dd'), 5000, NULL, 10);
INSERT INTO emp VALUES(7698, 'BLAKE', 'MANAGER', 7839, TO_DATE('1981-05-01', 'yyyy-mm-dd'), 2850, NULL, 30);
INSERT INTO emp VALUES(7782, 'CLARK', 'MANAGER', 7839, TO_DATE('1981-06-09', 'yyyy-mm-dd'), 2450, NULL, 10);
INSERT INTO emp VALUES(7566, 'JONES', 'MANAGER', 7839, TO_DATE('1981-04-02', 'yyyy-mm-dd'), 2975, NULL, 20);
INSERT INTO emp VALUES(7788, 'SCOTT', 'ANALYST', 7566, TO_DATE('1987-04-19', 'yyyy-mm-dd'), 3000, NULL, 20);
INSERT INTO emp VALUES(7902, 'FORD', 'ANALYST', 7566, TO_DATE('1981-12-03', 'yyyy-mm-dd'), 3000, NULL, 20);
INSERT INTO emp VALUES(7369, 'SMITH', 'CLERK', 7902, TO_DATE('1980-12-17', 'yyyy-mm-dd'), 800, NULL, 20);
INSERT INTO emp VALUES(7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('1981-02-20', 'yyyy-mm-dd'), 1600, 300, 30);
INSERT INTO emp VALUES(7521, 'WARD', 'SALESMAN', 7698, TO_DATE('1981-02-22', 'yyyy-mm-dd'), 1250, 500, 30);
INSERT INTO emp VALUES(7654, 'MARTIN', 'SALESMAN', 7698, TO_DATE('1981-09-28', 'yyyy-mm-dd'), 1250, 1400, 30);
INSERT INTO emp VALUES(7844, 'TURNER', 'SALESMAN', 7698, TO_DATE('1981-09-08', 'yyyy-mm-dd'), 1500, 0, 30);
INSERT INTO emp VALUES(7876, 'ADAMS', 'CLERK', 7788, TO_DATE('1987-05-23', 'yyyy-mm-dd'), 1100, NULL, 20);
INSERT INTO emp VALUES(7900, 'JAMES', 'CLERK', 7698, TO_DATE('1981-12-03', 'yyyy-mm-dd'), 950, NULL, 30);
INSERT INTO emp VALUES(7934, 'MILLER', 'CLERK', 7782, TO_DATE('1982-01-23', 'yyyy-mm-dd'), 1300, NULL, 10);

 

EMP_테이블_생성_스크립트.txt
0.00MB

 

 

[Oracle] 오라클 컬럼(Column) 추가, 삭제 방법 (컬럼 순서 변경)

오라클 테이블에 컬럼을 추가하기 위해서는 ALTER TABLE을 사용한다. 컬럼을 추가하면 테이블 컬럼의 마지막 순서에 추가가 되며, 컬럼 순서의 중간에 컬럼을 추가할 수는 없다. 오라클 12c 부터는

gent.tistory.com

 

[Oracle] 오라클 테이블 가상컬럼 추가 방법 (Virtual Column)

Oracle 11g부터 가상 컬럼( Virtual Column )을 사용할 수 있다. 실제 데이터를 저장하지 않고, 다른 컬럼의 값을 기반으로 계산된 값을 조회 시에 자동으로 생성해 주는 컬럼다. 실제로 INSERT나 UPDATE로

gent.tistory.com

 

 

댓글

Designed by JB FACTORY