create table
alter table
drop table
truncate table
CREATE TABLE [shema].table (
column datatype [DEFAULT [ON NULL] expr]
, column datatype [DEFAULT [ON NULL] expr] ...) [TABLESPACE tablespace];
DBA_TABLES
뷰에서 테이블에 대한 정보 조회DBA_TAB_COLUMNS
뷰에서 열에 대한 정보 조회CREATE TABLE t1 (
c1 number,
c2 number(2) default 2,
c3 number(3) default 3 not null);
CREATE TABLE ~~~ AS subquery;
CREATE TABLE t2 AS SELECT * FROM t1 WHERE 0=1;
0=1 조건은 항상 false 이기 때문에 서브 쿼리의 결과가 테이블에 입력되지 않음. 테이블만 생성할 때 위 쿼리 사용
아래와 같이 컬럼 이름(c4)과 기본값 지정 가능
CREATE TABLE t2 (c1, c2 DEFAULT 2, c4 DEFAULT 3) AS SELECT * FROM t1 where 0=1;
dba_extents
뷰에서 익스텐트에 대한 정보 조회 가능.
특정 유저의 기본 테이블스페이스 조회방법
select default_tablespace from dba_users where username = 'SCOTT';
ALTER TABLE [SCHEMA'.TABLE RENAME TO NEW_TABLE_NAME;
ALTER TABLE t2 RENAME TO t1;
12.2 버전부터 사용가능 : including rows
update indexes
alter table schema.table MOVE
[INCLUDING ROWS WHERE_CLUASE]
[ONLINE]
[TABLESPACE tablespace]
[UPDATE INDEXES] [(index [, index])];
CREATE TABLE ta AS SELECT ROWNUM AS c1 FROM XMLTABLE ('1 to 10000');
ALTER TABLE t1 MOVE INCLUDING ROWS WHERE c1 <= 5000 TABLESPACE users
원래 t1 테이블은 10000개의 행이 존재했으나 move를 통해 5000개의 행만 남아있게 된다.
테이블을 읽기 전용 테이블로 변경
ALTER TABLE table {READ ONLY | READ WRITE|;
READ ONLY : 테이블을 읽기 전용으로 변경
READ WRITE : 테이블을 읽기, 쓰기 모드로 변경 (기본값)
ALTER TABLE t1 READ ONLY
읽기 전용 테이블에 DML 작업을 수행하면 에러 발생. (ORA-12081)
DBA_TABLES
뷰에서 읽기 전용 여부 확인 가능
TRUNCATE TABLE 테이블명 [{DROP[ALL]|REUSE} STORAGE] [CASCADE]
DROP STORAGE : 기본값
DROP ALL STORAGE : MINEXTENTS 파라미터에 의해 할당된 공간을 포함한 모든 공간 해제
REUSE STORAGE : 삭제된 행의 공간 유지
CASCADE : ON DELETE CASCADE FK 제약 조건으로 참조하는 테이블을 TRUNCATE
테이블의 크기가 큰 경우 DROP ALL STORAGE를 사용하면 수행 시간을 단축시킬 수 있다.
DROP TABLE 테이블명 [CASCADE CONSTRAINTS] [PURGE]
flashback table 테이블명 to before drop
기능을 사용하여 복원 가능.SELECT * FROM RECYCLEBIN;
RECYCLEBIN
이 절을 사용하여 현재 사용자의 리사이클 빈(recycle bin)을 삭제.
사용자의 recycle bin에서 모든 객체를 제거하고 recycle bin에 있는 객체와 관련된 모든 스토리지 공간을 해제.
DBA_RECYCLEBIN
이 절은 SYSDBA 또는 PURGE DBA_RECYCLEBIN 시스템 권한이 있는 경우에만 사용 가능.
시스템 전역의 recycle bin에서 모든 객체를 제거할 수 있으며, 모든 사용자의 recycle bin을 삭제하는 것과 동일.
구조, 분산, 저장 기준에 따라 테이블을 아래와 같이 구분할 수 있다.
create table 테이블명 ( ~~ ) ORAGANIZATION HEAP
create table 테이블명 (~~ constraint 제약조건이름 primary key (column) organization index
create table t1 (c1 number, c2 number, constraint t1_pk primary key(c1)) organization index;
create cluster c1# (c1 number) index;
: 인덱스 클러스터 생성create index c1#_x1 on cluster c1#l
: 위에서 생성한 클러스터의 인덱스 생성dba_clusters
create global temporary table 테이블명
( column datatype ~~~)
[on commit {delete | preserve } rows];
create global temporary table t1 (C1 number) on commit delete rows;
create global temporary table t1 (C1 number) on commit preserve rows;