IT/DataBase

[Oracle] TableSpace, database 생성, 사용자 등록/삭제

원창연 2020. 12. 6. 11:19

ㅁ 테이블스페이스 생성전 점검

SQL>SELECT * FROM DBA_DATA_FILES;                                                        : 테이블스페이스 정보 조회

SQL>SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES;  : 테이블스페이스 목록

SQL>SELECT FILE_NAME, BYTES, STATUS FROM DBA_DATA_FILES;                        :테이블스페이스 파일 목록

SQL>SELECT TABLESPACE_NAME, BYTES, BLOCKS FROM DBA_FREE_SPACE;            :테이블스페이스 잔여 공간

 

 

ㅁ 테이블스페이스 생성/삭제 권한설정

SQL>CREATE TABLESPACE work DATAFILE 'work.dat' SIZE 50M AUTOEXTEND ON NEXT 10M;   : tablespace 생성
SQL>ALTER USER [계정명] DEFAULT TABLESPACE work;                                   : user tablespace 할당
SQL>DROP TABLESPACE work INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;    : tablespace 삭제

※ 테이블스페이스명 work

※ 참고 사항

더보기
CREATE TABLESPACE  [테이블스페이스명]
DATAFILE 
 '[파일 위치]'
SIZE 
1G (파일 크기 G, M 이런식으로 작성)
AUTOEXTEND 
ON (자동 확장)
NEXT
 10M (확장 크기)
MAXSIZE 
2G; (최대크기)

 

테이블스페이스 online/offline

ALTER TABLESPACE info_data offline;

ALTER TABLESPACE info_data online;

 

생성된 테이블스페이스의 추가하기 공간 늘여주기

ALTER TABLESPACE info_data

ADD DATAFILE '/DATA/oracle/oradata/ORCL/dbf'

SIZE 100m;

 

생성된 테이블스페이스 크기 변경하기

ALTER DATABASE DATAFILE '/DATA/oracle/oradata/ORCL/infodata.dbf'

RESIZE 200M;

 

기존 테이블스페이스에 자동확장 변경하기

ALTER DATABASE DATAFILE '/DATA/oracle/oradata/ORCL/infodata.dbf'

AUTOEXTEND ON NEXT 10m

MAXSIZE 100m;

 

테이블스페이스 삭제

DROP TABLESPACE info_data

INCLUDING CONTENTS

CASCADE CONSTRAINTS;

 

테이블스페이스의 물리적 파일까지 삭제하기

DROP TABLESPACE info_data INCLUDING CONTENTS AND DATAFILES;

 

데이터베이스 사용자 아이디 생성 및 수정

CREATE USER scbyun IDENTIFIED BY scbyun;

 

생성한 유저에 권한주고 연결하기

GRANT RESOURCE, CONNECT TO scbyun;

GRANT DBA TO scbyun;



출처: https://sangchul.kr/468 [변군이글루]

 

ㅁ 테이블 생성 예제

-- 테이블 생성
CREATE TABLE BOARD (
      IDX        NUMBER          NOT NULL PRIMARY KEY
    , NAME       VARCHAR2(50)    NOT NULL
    , EMAIL      VARCHAR2(50)    NOT NULL
    , PASSWD     VARCHAR2(50)    NOT NULL
    , CONTENT    VARCHAR2(1000)  NOT NULL
    , POST_DATE  DATE DEFAULT SYSDATE
);

-- 시퀀스
CREATE SEQUENCE BOARD_SEQ
    START WITH 1
    INCREMENT BY 1
    NOMAXVALUE 
    NOCACHE; 
 
 -- 데이터 입력
INSERT INTO BOARD (
      IDX
    , NAME
    , EMAIL
    , PASSWD
    , CONTENT
) VALUES ( 
      BOARD_SEQ.NEXTVAL
    , 'james'
    , 'james@gmail.com'
    , '1111'
    , '안녕하세요. 제임스입니다.'
);

--테이블 COMMENT설정
COMMENT ON TABLE [태이블명]  IS 'COMMENT내용';
EX) COMMENT ON TABLE EX_TABLE IS '예제테이블';


--컬럼 COMMENT설정
COMMENT ON COLUMN [테이블명].[컬럼명] IS 'COMMENT내용';
EX) COMMENT ON COLUMN EX_TABLE.DEPT IS '부서';

--컬럼 추가 1
ALTER TABLE emp ADD email VARCHAR(25);

--컬럼 추가 2 (기본 값, NOT NULL 지정)
ALTER TABLE emp ADD email VARCHAR(25) DEFAULT 'test@test.com' NOT NULL;


--컬럼 숨김
ALTER TABLE emp MODIFY job INVISIBLE;
--컬럼 보이기
ALTER TABLE emp MODIFY job VISIBLE;

▷ PRIMARY KEY DROP
ALTER TABLE [TABLE 명] DROP PRIMARY KEY
▷ PRIMARY KEY CREATE
ALTER TABLE [TABLE 명] ADD PRIMARY KEY (COL1, COL2, COL3 ...)