오브젝트 종류
Table - 행을 구성하며 저장의 기본 단위
View - 논리적으로 표현된 하나 또는 여러 개의 테이블 들의 부분집합
Sequence - 숫자 생성기
Index - 일부 쿼리문의 성능 높여줌
Synonym - 오브젝트에 추가적인 이름을 부여함
CREATE (오브젝트 생성)
필수 : 테이블명, 컬럼명, 데이터 타입, 컬럼사이즈
선택 : Default 값, 제약조건
기본 문법
CREATE TABLE 테이블명 (
컬럼명1 데이터 타입,
컬럼명3 데이터 타입,
컬럼명2 데이터 타입,
...
);
테이블 복사하는 방법
CREATE TABLE 테이블명
AS SELECT * FROM 복사할테이블명 WHERE 1=2;
테이블의 특정 컬럼만 복사하는 방법
CREATE TABLE 테이블명
AS SELECT ... FROM 복사할테이블명 WHERE ...;
NULL 값 대신 정해놓은 기본값을 넣고싶다면 DEFAULT를 사용
Ex) create TABLE ... create_date DATE DEFAULT SYSDATE; -- 기본값을 현재 날짜로 설정
ALTER (오브젝트 변형)
컬럼 추가하기
ALTER TABLE 테이블명 ADD (컬럼명 데이터타입(사이즈));
컬럼 수정하기
ALTER TABLE 테이블명 MODIFY (컬럼명 데이터타입(사이즈));
컬럼 삭제하기
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
컬럼명 변경하기
ALTER TABLE 테이블명 RENAME COLUMN 변경전컬럼명 TO 변경할컬럼명;
제약조건 추가하기
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건;
제약조건 삭제하기
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
읽기 전용 또는 읽기&쓰기 전용으로 설정하기 (변경이 거의 없는 코드성 자료에 사용하기 적합)
ALTER TABLE 테이블명 READ ONLY;
ALTER TABLE 테이블명 READ WRITE;
DROP (제약조건 포함 오브젝트 삭제)
기본 문법
DROP TABLE 테이블명;
Flashback 기능
기본 문법
FLASHBACK TABLE 테이블명 TO BEFORE DROP;
DROP 되면 그 즉시 영구적으로 삭제되지 않고 임시로 보관하는 장소(휴지통)가 있다
휴지통을 거치지 않고 테이블을 삭제하려면 아래 구문을 사용하면 된다 (민감한 자료일 때)
DROP TABLE 테이블명 PURGE;
휴지통(Recyclebin)
윈도우의 휴지통과 같은 역할이지만 용량이 차게되면 선입선출 방식으로 자동 삭제된다
휴지통 조회하는 구문
SELECT original_name, operation, droptime FROM recyclebin;
TRUNCATE (데이터 절단)
오토 커밋이 되므로 ROLLBACK이 불가능하다
구조만 남겨두고 모든 행 제거함
기본 문법
TRUNCATE TABLE 테이블명;
DELETE, TRUNCATE, DROP 비교
개념 | 문법 | 차이점 | |
DELETE | 테이블의 특정 행 삭제 (단, WHERE절 생략 시 모든 행 삭제됨) | DELETE FROM 테이블명; | DML, 저장공간 반납하지 않음, ROLLBACK 가능 |
TRUNCATE | 테이블의 모든 행 절단(삭제) | TRUNCATE TABLE 테이블명; | DDL, 구조만 남기고 저장공간 반납함, ROLLBACK 불가능 |
DROP | 테이블의 구조를 삭제 (정의 자체를 완전히 삭제) | DROP TABLE 테이블명; | DDL, 구조와 오브젝트 모두 포함해서 저장공간 반납함, ROLLBACK 불가능 |
'BackEnd > DataBase - Oracle' 카테고리의 다른 글
[Oracle] 제약 조건 (Constraint) (0) | 2020.02.13 |
---|---|
[Oracle] DML - 트랜잭션(Transaction) (0) | 2020.02.13 |
[Oracle] 서브 쿼리(Sub Query) (0) | 2020.02.13 |
[Oracle] JOIN과 Self-Join (0) | 2020.02.13 |
[Oracle] 그룹으로 묶는 GROUP BY절과 HAVING절 (0) | 2020.02.13 |