[오라클] 테이블스페이스 생성
본문 바로가기
IT. 컴퓨터

[오라클] 테이블스페이스 생성

by 솔기잇 2020. 4. 13.

 

구글 이미지

 

 

--  *** 테이블스페이스(TABLESPACE) 생성하기 *** --

 

(우선조회)

SELECT *

 FROM DBA_DATA_FILES;

 

 

1.우선 자기가 저장 곳에 폴더(MYORADATA) 만들기

 

2.먼저 D: 폴더를 생성하고 실행을 해야 한다.

CREATE TABLESPACE MYTESTTBS

DATAFILE 'D:\MYORADATA\MYTESTTBS01.DBF' SIZE 4M

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

 

 

-- 현재 오라클 서버에 접속되어진 사용자 소유의 테이블과 뷰의 목록을 조회하려면 아래와 같이한다.

 

( SCOTT 접속 )

 

--데이블에 대한 조회

SELECT * FROM TAB;

 

--사원에 대한 조회

SELECT * FROM EMP;

 

-- EMP 테이블의 컬럼(속성) 조회

DESCRIBE EMP;

(=DESC EMP;)

 

-- ROW(=, RECORD), (=, COLUMN, FIELD) 대한 정보조회

 

-- 테이블(=ENTITY, 개체) 생성

CREATE TABLE TBL_MEMBER01

(ID             VARCHAR2(10)

,PASSWD       VARCHAR2(20)

,NAME         VARCHAR2(10)

,CONSTRAINT TBL_MEMBER01_ID_PK PRIMARY KEY(ID)

) TABLESPACE MYTESTTBS;

 

 --데이터 넣기

INSERT INTO TBL_MEMBER01

VALUES('HONG', 'JAVA302', '홍길동');

 

COMMIT;

 

SELECT *

FROM TBL_MEMBER01;

 

-- MYTESTTBS 조회

SELECT TABLESPACE_NAME

FROM USER_TABLES

WHERE TABLE_NAME = 'TBL_MEMBER01';

 

SELECT TABLESPACE_NAME

FROM USER_TABLES

WHERE TABLE_NAME = 'EMP';

-- USERS

 

 

 

-- 복수개의 데이터파일로 구성된 테이블스페이스 생성하기

     (구동을 빨리 하기 위해서 나누는 )

 

CREATE  TABLESPACE  MYEXAMTBS

DATAFILE  'D:\MYORADATA\MYTEXAMTBS01.DBF'  SIZE 4M,

           -(8M짜리를 둘로 나눈다.)

          'D:\MYORADATA\MYTEXAMTBS02.DBF'  SIZE 4M

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

=>   할당된 메모리는 차면 그냥 끝나 버린다.

=>  그래서 차면 자동으로 증가하게 만들어 주어야 편하다.

 

--테이블스페이스에 대한 데이터 파일의 정보를 조회한다.

SELECT *

FROM DBA_DATA_FILES;

 

--조회

SELECT SEGMENT_NAME, TABLESPACE_NAME,

       BYTES, BLOCKS, FILE_ID

FROM DBA_EXTENTS

WHERE OWNER='SCOTT' AND

SEGMENT_NAME  IN('TBL_MEMBER01'

                ,'TBL_MEMBER02'

                ,'TBL_MEMBER03');

 

 

--테이블스페이스에 대한 메모리 자동 확장

CREATE TABLESPACE MYSAMPLETBS1

DATAFILE'D:\MYORADATA\MYSAMPLETBS_01.DBF' SIZE 4M

AUTOEXTEND ON

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

 

--테이블스페이스에 대한 메모리 자동 확장 범위 정하기

CREATE  TABLESPACE  MYSAMPLETBS2

DATAFILE'D:\MYORADATA\MYSAMPLETBS2_01.DBF'  SIZE  4M

AUTOEXTEND ON

NEXT 2M  --한번에 2M 증설

MAXSIZE 32M

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

à64M까지 있지만 4M부터 시작해서 32M까지 증가하게 지정

 

 

-- *** 테이블스페이스 삭제하기 *** --

DROP  TABLESPACE  MYSAMPLETBS3;

(하고 나서 탐색기에서 해당 데이터파일을 삭제한다.

위의 것을 실행하지 않고는 삭제가 불가능하다.)

 

 

--NEWSCOTT 계정에서

 

CREATE  TABLE  TBL_JEPUM01

(JECODE                         VARCHAR2(10)

,JENAME                          VARCHAR2(20)

);

 

-- ORA-01031: 권한이 불충분합니다.

(SYS에서 권한 주고)

-- ORA-01950: 테이블스페이스 'KHTBS' 대한 권한이 없습니다.

(그래도 에러가 생긴다.)

--=> KHTBS 테이블스페이스에 대한 할당량이 없다는 말이다.

(SYS 가서 다시그래야 TBL_JEPUM01 테이블이 생성이 된다.)

 

  **그래서  SYS에서, 위의 모든 것을 한꺼번에  주는 것을 하는 것이 편하다.

 

--SYS 계정에서 조회

SELECT *

FROM USER_TS_QUOTAS;

 

-- *** 오라클 사용자 생성하기 *** --

CREATE USER NEWSCOTT IDENTIFIED BY DBATIGER

DEFAULT TABLESPACE KHTBS; MYSAMPLETBS2

 

 

 

ALTER USER NEWSCOTT

QUOTA 2M ON KHTBS;

 

(생성한 계정이 마음에 들어서 바꾸고 싶다면)

--ALTER USER NEWSCOTT  

--DEFAULT TABLESPACE  KHTBS;

 

 

--SCOTT계정에서 TBL_MEMBER02 테이블을 아래와 같이 생성을 한다.

  SYS에서 잡아준 곳에 생성이 된다.

CREATE  TABLE  TBL_MEMBER02

(ID        VARCHAR2(10)

,PASSWD  VARCHAR2(20)

,NAME    VARCHAR2(10)

,CONSTRAINT TBL_MEMBER02_ID_PK PRIMARY KEY(ID)

) TABLESPACE MYEXAMTBS;

 

/* Data Type  */

1. 숫자형 - NUMBER

2. 문자형 - CHAR, VARCHAR2, NCHAR, NVARCHAR2

3. 날짜형 – DATE

 

-- *** 중요함 ~~ 오라클 도움말 사이트 *** --

http://athiti.oracle.com

 

SELECT 0208154123456, '0208154123456'

FROM DUAL;

=> 결과가 오른쪽으로 붙어서 나오면 숫자이고

(주민번호는 문자로 처리)

=>  결과가 왼쪽으로 붙어서 나오면 문자이다.

 

 

-- 테이블 생성 (옵션추가)

CREATE TABLE TBL_SAWONINFO  

(SANO NUMBER(4)

       --NUMBER(4)  -9999 ~ +9999  (자리수를 한다.)

       --NUMBER(4,1) -999.9 ~ +999.9

       --NUMBER(4,2) -99.99 ~ +99.99

,JUBUN  CHAR(13) -- 글자숫자와 관계없이 고정값

,SANAME VARCHAR2(10)  --가변형 '이순신' 6 Byte '고수' 4 Byte

--,SANAME NVARCHAR2(10) -- 글자수 '황금독수리놀라다'(O),'HiSuperWoman'(X)

,JIK       VARCHAR2(10)

,SAL      NUMBER(5)

,DNAME VARCHAR2(10)

,LOC      VARCHAR2(20)

,DREL    VARCHAR2(15)

);

 

여기에 값을 넣는 형식은 이렇다.

 

INSERT INTO TBL_SAWONINFO

VALUES(1003, '7210091234567', '안중근', '과장',3000, '관리부','서울', '02-345-1234');

 

 

-- ** 데이터 조회하기 ** --

 

    SELECT                컬럼명           -- 5

     FROM               테이블명       -- 1

    WHERE             조건절         -- 2

    GROUP BY                         -- 3

    HAVING            조건절          -- 4

ORDER BY                            -- 6


close