VIEW (가상 테이블)

실체가 없는 테이블, 다른 테이블에  접근하기 위한 테이블, 중간에 있는 테이블

 

참고

 속도가 빠르다.

 한 개의 뷰로 여러 개의 테이블을 검색할 수 있다.

 제한 설정이 가능하다.(READONLY)

 

VIEW생성

형식

 CREATE OR REPLACE VIEW 뷰명
 AS
 SELECT *
 FROM 접근할 테이블명;

 

예제

-- hr스키마

CREATE OR REPLACE VIEW TEST_VIEW
AS
SELECT *
FROM jobs;

 

 

 

원하는 컬럼만 넣어 VIEW생성

형식

 CREATE OR REPLACE VIEW 뷰명
 AS
 SELECT 컬럼명1, 컬럼명2...컬럼명n
 FROM 접근할 테이블명;

 

참조

 이때 컬럼명은 접근할 테이블의 컬럼명이다.

 또한, 테이블 간 JOIN을 하여 여러 데이터를 집어넣는 것도 가능하다.

 

예시

CREATE OR REPLACE VIEW TEST_VIEW
AS
SELECT job_id, job_title, min_salary
FROM jobs;

 

 

 

VIEW로 접근하여 테이블에 데이터 집어넣기

형식

 INSERT INTO 뷰명(컬럼명1, 컬럼명2, ...컬럼명n)
 VALUES(값1,값2...값n);

 

참조

 실제로 VIEW에서 접근 테이블에 데이터를 집어넣는 건 매우 위험하다고 한다..

 거의 사용할 일이 없다.

 

예시

INSERT INTO UB_TEST_01(job_id, job_title, min_salary)
VALUES('DEVELOPER', '개발자', 10000);

 

 

 

ROLLBACK : 되돌리기

형식

 ROLLBACK;

 

참조

 INSERT 후 ROLLBACK을 하게 되면 데이터를 넣기 전으로 되돌릴 수 있다.

 COMMIT시 ROLLBACK불가!!

 

 

 

COMMIT : DB에 적용하기

형식

 COMMIT;

 

참조

 데이터를 집어넣으려면 필수!!

 

 

 

읽기전용 VIEW 생성

형식

 CREATE OR REPLACE VIEW 뷰명
 AS
 SELECT *
 FROM 접근할 테이블명

 WITH READ ONLY;

참조

 읽기 전용으로 VIEW생성 시 INSERT 할 수 없다.

 

예제

CREATE OR REPLACE VIEW TEST_VIEW
AS
SELECT *
FROM jobs
WITH READ ONLY; -- 읽기전용 

 

 

 

VIEW 검색

형식

 SELECT * FROM 뷰명;

 

예제

SELECT * FROM TEST_VIEW;

 

 

 

VIEW 삭제

형식

 DROP VIEW 뷰명;

 

예제

DROP VIEW TEST_VIEW;

+ Recent posts