테이블은 오라클에서 가장 기본이 되는 객체로써 테이블에 데이터를 입력하여 데이터를 관리한다. 테이블은 엑셀표와 같이 생각하면 쉽다. 구성은 로우(행, 가로)와 컬럼(열, 세로)으로 구성이 된다. 테이블을 생성하고 이에 따른 필요로 하는 인덱스 생성, 데이터 생성 그리고 테이블 삭제를 진행해보자.
오라클 테이블 생성
기본적인 테이블 생성문은 다음과 같다.
CREATE TABLE 테이블명 ( 컬럼1 데이터타입 [NULL, NOT NULL],
컬럼2 데이터타입 [NULL, NOT NULL],
...
) [TABLESPACE 테이블스페이스명];
테이블 생성 형식은 위와 같이 기본적으로 사용되며 NULL, NOT NULL, TABLESPACE는 필요에 따라 명시해준다.
다음으로는 실제 테이블을 생성하듯이 만들어보자.
CREATE TABLE SHOP_USER (
CLOSE_DATE VARCHAR2(8) NOT NULL,
CLOSE_TIME VARCHAR2(8) NOT NULL,
SEQ VARCHAR20(20) NOT NULL,
USER_NAME VARCHAR2(10),
POINT_MONEY NUMBER(15),
CONSTRAINT PK_SHOP_USER PRIMARY KEY(CLOSE_DATE, CLOSE_TIME, SEQ) USING INDEX TABLESPACE USER_IDX NOLOGGING
) TABLESPACE USER_DATA NOLOGGING
첫번재 테이블 생성 형식 처럼 테이블을 생성해도 생성이 된다. 테이블 생성 시 조금 더 디테일하게 설정 하는 경우가 있다. 테이블 스페이스(데이터, 인덱스 부분) 설정과 기본키 관련도 테이블 생성 시 같이 생성 할 수 있다. 또한 NOLOGGING 옵션을 설정하여 리두로그를 쌓지 않을 수 있다.
설명을 간략하게 하자면 5개의 컬럼을 생성.
일자/시간/순번은 기본키를 주기 위해서 NOT NULL 옵션을 주었다.
기본키를 설정하고 오라클은 기본키 설정 시 인덱스로 잡히는데 이때 이 인덱스를 USER_IDX 테이블 생성에 NOLOGGING 옵션을 적용하여 인덱스를 생성한다. 테이블 및 저장되는 데이터는 USER_DATA 테이블스페이스에 생성 한다.
오라클 인덱스 생성
위와 같이 테이블을 생성을 하였으며 이름순으로 데이터를 조회하는 어드민 메뉴가 있다고 생각해보자. 데이터가 많아질 경우 이름 순으로 조회를 하면 속도가 느려 시간이 오래 걸리니 인덱스 생성을 필요로 한다.
CREATE INDEX IDX_USER_NAME ON SHOP_USER (USER_NAME) TABLESPACE USER_IDX;
인덱스 이름은 IDX_USER_NAME 이며 테이블스페이스는 USER_IDX 위치에 인덱스가 생성된다.
인덱스 컬럼은 USER_NAME이다.
오라클 테이블 삭제 / 인덱스 삭제
DROP TABLE SHOP_USER CASCADE CONSTRAINTS; DROP INDEX USER_IDX;
첫번째 명령어는 테이블을 삭제하는 명령어로 SHOP_USER 테이블을 삭제한다. 이때 CASCADE CONSTRAINTS 옵션을 주면 관련된 제약조건도 같이 삭제가 된다. 두번째 명령어는 인덱스를 삭제하는 명령어이다.
필요에 따라 필요 명령어를 사용하도록 하자.
오라클 데이터 생성
기본적인 데이터 생성은 다음과 같다.
INSERT INTO SHOP_USER (컬럼1, 컬럼2, 컬럼3, ...) VALUES(컬럼1 값, 컬럼2 값, 컬럼3 값, ...);다음으로는 실제 SHOP_USER 테이블에 데이터를 넣는 방법이다.
INSERT INTO SHOP_USER (CLOSE_DATE, CLOSE_TIME, SEQ, USER_NAME, POINT_MONEY) VALUES('20190307', '15071341', '1', 'JUN', 50000);
SHOP_USER 테이블에 값을 입력 할 수 있겠다.
'DB > Oracle' 카테고리의 다른 글
[DB] 오라클 파티션 테이블 정의 및 생성 (0) | 2019.03.13 |
---|---|
[DB] 오라클 제약조건 (NOT NULL, 기본키, UNIQUE, 외래키, CHECK) (0) | 2019.03.12 |
[DB] 오라클 에러, ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다. (0) | 2019.03.07 |
[DB] 오라클 기본키(primary key) 컬럼 확인 (0) | 2019.02.14 |
[DB] 오라클 컬럼 추가, 컬럼설명 추가/수정, 기본키 변경 (0) | 2019.02.14 |