[Oracle] TableSpace, database 생성, 사용자 등록/삭제
ㅁ 테이블스페이스 생성전 점검
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
※ 참고 사항
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 ...)