테이블스페이스 생성
CREATE TABLESPACE myts DATAFILE
'C:\~\oradata\myoracle\myts.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M;
사용자 생성
CREATE USER ora_user IDENTIFIED BY 1234
DEFAULT TABLESPACE MYTS
TEMPORARY TABLESPACE TEMP;
롤 부여
GRANT DBA TO ora_user;
스키마: Schema Object의 줄임말로 테이블, 뷰, 인덱스와 같은 구조를 포함하는 논리적인 데이터 저장 구조를 가진 객체
DB 객체: 테이블, 뷰, 인덱스, 시노님, 시퀀스, 함수, 프로시저, 패키지
<테이블>
- Primary Key = UNIQUE + NOT NULL
테이블 생성
CREATE TABLE [스키마.]테이블명 (
컬럼1 컬럼1_데이터타입 [NULL, NOT NULL]
, 컬럼2 컬럼2_데이터타입 [NULL, NOT NULL]
...
) [TABLESPACE 테이블스페이스명];
테이블 변경
ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;
ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입;
ALTER TABLE [스키마.]테이블명 ADD 컬러명 데이터타입;
ALTER TABLE [스키마.]테이블명 DROP COLUMN 컬럼명;
ALTER TABLE [스키마.]테이블명 ADD CONSTRAINTS 제약조건명 PRIMARY KEY (컬러명, ...);
ALTER TABLE [스키마.]테이블명 DROP CONSTRAINTS 제약조건명;
DESC 테이블명: 테이블에 있는 컬럼 내역 확인
테이블 복사
CREATE TABLE [스키마.]테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 복사할 테이블명;
[뷰]
뷰 생성
CREATE OR REPLACE VIEW [스키마.]뷰명 AS
SELECT 문장;
뷰 삭제
DROP VIEW [스키마].뷰명;
[인덱스]
* 인덱스의 구분
1) 단일 인덱스와 결합 인덱스
2) UNIQUE 인덱스와 NON-UNIQUE 인덱스
3) B-tree 인덱스, 비트맵 인덱스, 함수 기반 인덱스
인덱스 생성
CREATE[UNIQUE] INDEX [스키마명.]인덱스명
ON [스키마명.]테이블명(컬럼1, 컬럼2, ...);
인덱스 삭제
DROP INDEX [스키마명.]인덱스명;
※ 인덱스 생성시 고려 사항
1) 일반적으로 테이블 전체 로우 수의 15% 이하의 데이터를 조회할 때 인덱스를 생성한다.
2) 테이블 건수가 적다면 굳이 인덱스를 만들 필요 없다. (ex. 코드성 테이블)
3) 테이블의 유일성 정도가 좋거나 범위가 넓은 값을 가진 컬럼을 인덱스로 만드는 것이 좋다.
4) NULL이 많이 포함된 컬럼은 인덱스 컬럼으로 적당치 않다.
5) 결함 인덱스를 만들 때는, 컬럼의 순서가 중요 (자주 사용되는 컬럼을 앞에 둔다)
6) 인덱스를 너무 많이 만들면 (INSERT, UPDATE, DELETE) 성능 부하 발생한다.
[시노님]
CREATE OR REPLACE [PUBLIC] SYNONYM [스키마명.]시노님명
FOR [스키마명.]객체명;
DROP [PUBLIC] SYNONYM [스키마명.]시노님명;
[시퀀스]
CREATE SEQUENCE [스키마명.]시퀀스명
INCREMENT BY 증감숫자
START WITH 시작숫자
NOMINVALUE | MINVLAUE 최소값
NOMAXVALUE | MAXVALUE 최대값
NOCYCLE | CYCLE
NOCACHE | CACHE;
시퀀스명.NEXTVAL;
시퀀스명.CURRVAL;
DROP SEQUENCE [스키마명.]시퀀스명;
[파티션 테이블]
CREATE TABLE SALES (
PROD_ID NUMBER(6, 0) NOT NULL,
...
SALES_DATE DATE DEFAULT SYSDATE NOT NULL,
SALES_MONTH VARCHAR2(6),
...
)
PARTITION BY RANGE(SALES_MONTH)
(
...
PARTITION SALES_Q1_1998 VALUES LESS THAN ('199804') TABLESPACE MYTS,
PARTITION SALES_Q2_1998 VALUES LESS THAN ('199807') TABLESPACE MYTS,
...
PARTITION SALES_Q4_2003 VALUES LESS THAN ('200401') TABLESPACE MYTS
);
- RANGE 파티션, LIST 파티션, 해시 파티션, 복합 파티션 등
'Oracle' 카테고리의 다른 글
[오라클SQL과PLSQL을다루는기술] 10. PL/SQL 예외처리와 트랜잭션 (0) | 2020.07.11 |
---|---|
[오라클SQL과PLSQL을다루는기술] 8. PL/SQL (0) | 2020.07.11 |
[오라클SQL과PLSQL을다루는기술]6. 조인과 서브쿼리 (0) | 2020.05.09 |
[오라클SQL과PLSQL을다루는기술]5. 그룹 쿼리와 집합 연산자 (0) | 2020.05.09 |
[오라클SQL과PLSQL을다루는기술]4. SQL 함수 (0) | 2020.05.08 |