ORACLE SQL

ORACLE SQL DCL/TCL , view

최종군 2024. 7. 31. 18:39

DCL : 데이터 제어 언어 

=> 계정에 권한을 부여하는 시스템 권한/ 객체 접근 권한을 부여하거나 회수하는 구문 

 

- 시스템 권한 : DB에 접근하는 권한 , 객체를 생성할 수 있는 권한 

- 객체 접근 권한 : 특정 객체들을 조작할 수 있는 권한 

 

 

* 계정 생성 *

CREAT USER 계정명 IDENTIFIED BY 비밀번호 ;

 

* 권한 부여 *

GRANT 권한 (CONNECT, RESOURCE) TO 계정명; 

 

     * 시스템 권한 종류 *
    - CREATE SESSION : 접속 권한 
    - CREATE TABLE : 테이블 생성 권한 
    - CREATE VIEW : 뷰 생성 권한 
    - CREATE SEQENCE : 시퀀스 생성 권한 
   


 

 

VIEW : 

 

SELECT문을 통해 얻어진 결과물을 저장해둘 수 있는 객체 

= > 자주 사용하는 쿼리문을 저장해두면 매번 다시 해당 쿼리문을 기술할 필요가 없다 

임시테이블과 같은 존재 : 실제 데이터가 저장되는 게 아니라, 논리적으로만 저장되어있다. 

 

 

-- 뷰를 생성할 수 있는 권한을 부여 (관리자 권한으로 실행!)
-- GRANT CREATE VIEW TO C##KH;

 

 

     생성된 뷰를 통해서 DML(INSERT/UPDATE/DELETE)
    
    -- > 뷰를 통해서 DML을 작성하게 되면, 실제 데이터가 저장되어 있는 테이블에 반영

 

* VIEW 옵션 *  

 

 

 

 CREATE [OR REPLACE] [FORCE | (NOFORCE)] VIEW
    AS 서브쿼리 
    [WITH CHECK OPTION]
    [WITH READ ONLY];

 

- OR REPLACE : 기존에 동일한 이름의 뷰가 있을 경우 갱신하고, 

존재하지 않을 경우 새로 생성 

 

 

 

FORCE : 서브쿼리에 작성한 테이블이 존재하지 않아도 뷰를 생성 

NOFORCE : 서브쿼리에 작성한 테이블이 존재해야지만 뷰를 생성 (기본값)

 

 

WITH CHECK OPTION :

DML(추가/수정/삭제) 

사용 시 서브쿼리에 작성한 조건에 맞는 

값으로만 실행되도록만 하는 옵션 

 

 

 WITH READ ONLY : 

뷰를 조회만 가능하도록 하는 옵션 

 

CREATE OR REPLACE NOFORCE VIEW VW_TEMP 
AS SELECT TCODE, TNAME, TCONTENT
FROM TT; --> 현재 TT라는 테이블이 없으므로 뷰도 생성 불가(NOFORCE)

 

 

1.CREATE 2.OR REPLACE 3.NOFORCE 4.VIEW 5.VW_TEMP 

 

1. CREATE 

2. OR REPLACE : 기존 동일한 이름의 뷰가 있을 경우 갱신하고 

존재하지 않을 경우 새로 생성 

3. NOFORCE : 기본값 서브쿼리에 작성한 테이블이 존재해야지만 뷰를 생성 

4.VIEW 

5.테이블명 

 

 

 

'ORACLE SQL' 카테고리의 다른 글

SQL 아침 복습 자료 문제 풀이  (1) 2024.08.01
SQL JDBC 회원 관리 프로그램 _ INSERT  (0) 2024.07.31
ORACLE SQL JAVA 적용 시키기  (0) 2024.07.30
ORACLE SQL DDL 복습 내용 정리  (0) 2024.07.30
ORACLE SQL_DML  (0) 2024.07.29