SQL view 개념 정리 및 적용예제
SQL view 뷰
◆view
create view 권한 할당
grant create view to scott;
-view 작성법
**주의할점
subquery는 조인, set 연산, 서브쿼리가 포함된 복잡한 SELECT 문이 정의 가능하다. subquery에는 ORDER BY 절을 사용할 수 없다.
ORDER BY를 사용하려면 검색시 뷰에 기술한다.
뷰를 수정하기 위해서는 CREATE OR REPLACE 을 이용한다.
CREATE VIEW 권한을 가져야 뷰를 생성할 수 있다.
-view 생성
create view emp_view
as
select empno, ename, sal, hiredate
from emp where deptno = 10;
create view dept_view
as
select deptno no, dname name
from dept;
-view 수정
:CREATE OR REPLACE 명령 이용한다.
CREATE OR REPLACE VIEW DEPT_VIEW
AS
SELECT DEPTNO NO, DNAME NAME, LOC
FROM DEPT;
** EX. SAL * 1.1 해서 그대로 VIEW에 넣을 수 없고 ALIASE를 이용해서 넣어줘야 한다.
컬럼, 구조를 변경하는 것.
만들거나 변경하는 것.
-복합뷰 (VIEW) 생성
여러군데 테이블에서 미리 자료를 뽑아서 하나의 테이블로 만들 수 있다.
조인,,했던 결과가 테이블로 남아 있다,,,
CREATE VIEW EMP_DEPT_VIEW
AS
SELECT EMPNO, ENAME, DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND DEPT.DEPTNO = 30;
-제약조건
단순 뷰에서 DML 연산 수행 가능 하다.
뷰가 다음을 포함한다면 행을 제거할 수 없다.
- 그룹함수
- GROUP BY 절
- DISTINCT 키워드
뷰가 다음을 포함한다면 데이터를 수정할 수 없다.
- 위의 임의의 조건
- ROWNUM 의사열
- 표현식으로 정의된 열 ( 예: SAL*12 )
뷰가 다음을 포함한다면 데이터를 추가할 수 없다.
- 위의 임의의 조건
- 뷰에 의해 선택되지 않은 NOT NULL 열이 기본테이블에 있을 때
-뷰에 있는 자료를 수정했을 때 원본 자료도 변경된다.
- WITH CHECTK OPTION
WHERE 조건에 맞는 것들만 수정 할 수 있다.
-WITH READ ONLY
자료 읽기만 가능하다. DML작업은 불가능.
-view 제거
기본 테이블을 기반으로 하기 때문에 데이터 손실 없이 뷰를 삭제한다.
뷰 삭제는 뷰가 만들어진 기본 테이블에는 영향을 미치지 않는다.
** 뷰 삭제 후 원본테이블 결과 값도 변경된다.
DELETE FROM EMP_VIEW
WHERE EMPNO = 7782;
UPDATE EMP_VIEW
SET ENAME = 'NY'
WHERE EMPNO = 7788;
SELECT * FROM EMP_VIEW;
SELECT * FROM EMP;
ROLLBACK;
'Devel > DB_SQL' 카테고리의 다른 글
SQL 서브쿼리(subquery)의 개념과 연산자, 다중서브쿼리 적용예제, (0) | 2020.08.31 |
---|---|
SQL SEQUENCE 생성, 등록,INDEX 사용법,사용자관리 추가하는 방법 (0) | 2020.08.06 |
SQL FOREIGN KEY,제약조건에 대해 (0) | 2020.08.06 |
SQL DML(INSERT,DELETE,MERGE,UPDATE,NULL)개념과 적용예제 (0) | 2020.07.22 |
[SQL] JOIN의 종류와 조인 예제 (0) | 2020.07.22 |