뷰
VIEW
하나 이상의 테이블이나 다른 뷰를 이용해서 생성하는 가상의 테이블
활용
1) 보안을 유지하기 위해 사용: 사원테이블 - 급여컬럼 (비밀유지)
2) SQL 문을 미리 만들어 놓고 재활용 : 코딩 생산성 향상
특징
뷰는 INSERT 도 가능하다!
단, 그룹함수로 만들어진 뷰는 INSERT가 불가능하다.
또한, 읽기전용 뷰도 INSERT가 불가능하다.
그룹함수로 만들 뷰는 꼭 컬럼에 별칭(AS 별칭)을 붙여주세요
뷰 생성 , [OR REPLACE] 쓰면 뷰 수정도 가능
뷰이름 : VW_테이블명_컬럼명
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 뷰이름(컬럼1,컬럼2,...)
AS
SELECT 원본컬럼1, 원본컬럼2,... FROM 테이블명 [WITH CHECK OPTION[constraint 제약조건]]
[WHERE]
[WITH READ ONLY]
-- OR REPLACE : 이미 존재하는 뷰의 내용을 수정함
-- FORCE : 기본 테이블의 존재 여부 상관없이 VIEW생성
-- NOFORCE : 기본 테이블이 존재할 경우에만 VIEW 생성(기본값)
-- WITH CHECK OPTION : 주어진 제약조건에 맞는 데이터만 입력 및 수정 가능
-- WITH READ ONLY : 읽기전용
뷰 조회
SELECT * FROM 뷰이름
계정의 모든 뷰 조회
-- 뷰 정보 확인 : 데이터사전(시스템테이블: 관리용(미리생성되어 있음)) : USER_VIEWS
SELECT * FROM USER_VIEWS;
-- 뷰 테이블 목록 확인 : tab
SELECT * FROM tab WHERE TABTYPE='VIEW';
뷰에 INSERT 가능
단, 그룹함수로 만들어진 뷰는 INSERT가 불가능하다.
또한, 읽기전용 뷰도 INSERT가 불가능하다.
INSERT INTO 뷰이름(컬럼1...) VALUES (값1,값2...);
뷰 삭제
DROP VIEW 뷰이름
'데이터베이스 > ORACLE_DB' 카테고리의 다른 글
Oracle_SQL - 프로시저 (PROCEDURE) - 조건문 (0) | 2023.09.15 |
---|---|
Oracle_SQL - 프로시저 (PROCEDURE) - 맛보기 (0) | 2023.09.15 |
Oracle_SQL - System Role (유저생성 , 권한부여 , 동의어) (0) | 2023.09.14 |
Oracle_SQL - 인덱스 (INDEX) (0) | 2023.09.14 |
Oracle_SQL - 시퀀스(Squence) (0) | 2023.09.14 |