11. 뷰란 > 학습자료 | IOTsw_u2 U2 Project
학습자료

SQL 11. 뷰란

본문

 

 

테이블을 Select 할때 모두 가저오면 속도는 차이는 없다지만 메모리는 차지할 것 같다

그래서 일부만 가저오는데 이때마다 복잡한 구문을 작성하지 않고 간단하게 사용하기 위해

자주 쓸만한 쿼리문을 가상의 테이블로 만든후 다음에는 Select * from 으로 사용해도 되도록 하는것이 VIEW 다.


만드는법 

CREATE VIEW viewnName AS 실제쿼리문

 

가상 테이블 뷰를 생성하면 데이터의 논리적인 부분 집합 또는 조합을 나타낼 수 있다.

뷰는 테이블 또는 다른 뷰를 기반으로 하는 논리 테이블로서 자체적으로 데이터를 포함하지 않지만 창과 마찬가지로 뷰를 통해 테이블의 데이터를 보거나 변경할 수 있다.

뷰의 기반이 되는 테이블을 기본 테이블이라고 하며 뷰는 데이터 딕셔너리에 SELECT문으로 저장된다.

 

뷰 사용 목적

․ 데이터 액세스를 제한하기 위해

․ 복잡한 질의를 쉽게 작성하기 위해

․ 데이터 독립성을 제공하기 위해

․ 동일한 데이터로부터 다양한 결과를 얻기 위해

 

뷰의 장점

․ 뷰는 테이블의 열을 선택적으로 표시할 수 있으므로 데이터 액세스를 제한합니다.

․ 뷰를 사용하면 복잡한 질의의 결과를 검색하는 단순한 질의를 만들 수 있다.

 

예를 들어, 조인 문 작성 방법을 몰라도 뷰를 사용하여 여러 테이블에 있는 정보를 질의할 수 있다.

․ 뷰는 임시 사용자와 응용 프로그램에 대해 데이터 독립성을 제공하며 하나의 뷰를 사용하여 여러 테이블에 있는 데이터

를 검색할 수 있다.

․ 뷰를 사용하면 사용자 그룹이 특정 기준에 따라 데이터를 액세스할 수 있다.

단순 뷰 및 복합 뷰

 

특징 단순 뷰 복합 뷰

테이블 수 하나 하나 이상

함수 포함 아니오 예

데이터 그룹 포함 아니오 예

뷰를 통한 DML 작업 예 불가능한 경우도 있음

 

단순 뷰와 복합 뷰 비교

뷰는 단순 뷰와 복합 뷰로 구분되는데 기본적인 차이는 INSERT, UPDATEDELETE등의 DML 작업과 관련되어 있다.

 

․ 단순 뷰의 특징

- 한 테이블에서만 데이터를 얻는다.

- 함수 또는 데이터 그룹을 포함하지 않는다.

- 뷰를 통해 DML 작업을 수행할 수 있다.

 

․ 복합 뷰의 특징

- 여러 테이블에서 데이터를 얻는다.

- 함수 또는 데이터 그룹을 포함한다.

- 뷰를 통해 DML 작업을 수행할 수 없는 경우도 있다.

 

 

뷰 생성

CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view

[(alias[, alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint])

[WITH READ ONLY [CONSTRAINT constraint]);

 

구문 설명 :

OR REPLACE 뷰가 이미 있어도 다시 생성한다.

FORCE 기본 테이블의 존재 여부에 관계없이 뷰를 생성한다.

NOFORCE 기본 테이블이 있는 경우만 뷸르 생성한다. (기본값).

view 뷰 이름이다.

alias 뷰 질의에 의해 선택되는 표현식의 이름을 지정한다.

       (별칭 수는 뷰에 의해 선택되는 표현식 수와 일치해야 한다.)

subquery 완전한 SELECT문이다.(SELECT 목록에서 열에 대해 별칭을 사용할 수 있다.)

WITH CHECK OPTION 뷰를 통해 액세스할 수 있는 행만 삽입 또는 갱 신할 수 있도록 지정한다.

constraint CHECK OPTION 제약 조건에 지정된 이름이다.

WITH READ ONLY 이 뷰를 통해서는 DML 작업을 수행할 수 없도록 한다.

 

 

MSSQL 디비 예제 :

SELECT emp_id, lname, job_lvl

From employee

WHERE pub_id =0877 

 

CREATE VIEW empvu80 --=>view 생성​

 

AS

SELECT emp_id, lname, job_lvl

From employee

WHERE pub_id =0877

SELECT * FROM empvu80

sp_columns empvu80

sp_helptext empvu80 --뷰 상세 내용 확인

․ CREATE VIEW 문에 서브 쿼리를 포함시킨다. 

․ 서브 쿼리는 복합 SELECT 구문을 포함할 수 있다.

 

예제) 뷰 생성 

․ 부서80의 사원에 대한 자세한 정보를 포함하는 뷰 EMPVU80을 생성한다.

오라클 디비 예제 : 

CREATE VIEW empvu80

AS SELECT employee_id, last_name, salary

FROM employees

WHERE department_id = 80;

View created.

․ iSQL*Plus의 DESCRIBe 명령을 사용하여 뷰의 구조를 표시한다.

오라클 디비 예제 : 

CESCRIBE empuv80

☞설명) 뷰 생성

예제는 부서 80에 있는 각 사원의 사원 번호, 이름 및 급여를 포함하는 뷰를 생성한다.

 

iSQL*Plus의 DESCRIBE명령을 사용하여 뷰의 구조를 표시할 수 있다.

 

 

뷰 생성 지침 : 

․ 뷰를 정의하는 서브 쿼리는 조인,그룹,서브 쿼리 등의 복합 SELECT 구문을 포함 할 수 있다. 

․ 뷰를 정의하는 서브 쿼리는 ORDER BY 절을 포함할 수 없다.

  ORDER BY 절은 뷰에서 데이터를 검색할 때 지정한다. 

․ WITH CHECK OPTION을 사용하여 생성한 뷰의 제약 조건 이름을 지정하지 않으면 SYS_Cn 형식의 기본 이름이 지정된다.

․ OR REPLACE 옵션을 사용하면 뷰를 삭제하여 다시 생성하거나 이전에 부여 받은 객체 권한을 다시 부여 하지

않고도 뷰의 정의를 변경할 수 있다.

 

 

서브 쿼리에 열 별칭을 사용하여 뷰를 생성합니다.

주어진 별칭 이름을 사용하여 이 뷰에서 열을 선택한다.

서브 쿼리에 열 별칭을 포함시켜 열 이름을 제어할 수 있다.

 

오라클 디비 예제 : 

CREATE VIEW salvu50

AS SELECT employee_id ID_NUMBER,

last_nane NAME,

salary*12 ANN_SALARY

FROM employees

WHERE department_id = 50;

View created.

 

☞설명)

예제는 부서 50의 모든 사원에 대해 별칭이 ID_NUMBER인 사원번호(EMPLOYEE_ID), 별칭이 NAME인 이름(LAST_NAME),

별칭이 ANN_SALARY인 연봉(SALARY)을 포함하는 뷰를 생성한다.

또는 별칭을 CREATE문 뒤이면서 SELECT 서브 쿼리 앞인 위치에 사용할 수도 있다.

나열되는 별칭의 수는 서브 쿼리에서 선택되는 표현식의 수와 일치해야 한다.

 

MSSQL 디비 예제 :

CREATE view salvu50

AS

SELECT emp_id ID_NUMBER, lname NAME, job_lvl * 12 ANN_SALARY

FROM employee

WHERE pub_id = 0877

 

또는

 

CREATE view salvu50

(ID_NUMBER, NAME, ANN_SALARY)

AS

SELECT emp_id , lname , job_lvl * 12

FROM employee

WHERE pub_id = 0877

sp_columns salvu50

sp_helptext salvu50 --뷰 상세 내용 확인

SELECT * FROM salvu50

SELECT employee_id, last_name, salary*12

FROM employyes

WHERE department_id = 50;

View created 

댓글목록

11. 뷰란
이어쓰기 1.A 11-1. 뷰에서 데이터 검색
이어쓰기 2.B 11-2. 뷰 수정
이어쓰기 3.C 11-3. 복합뷰 생성
이어쓰기 4.D 11-4. 뷰를 통한 DML 작업 수행에 관한 규칙
이어쓰기 5.E 11-5. WITH CHECK OPTION 절 사용
이어쓰기 6.F 11-6. DML 작업 거부
이어쓰기 7.G 11-7. 뷰 제거
이어쓰기 8.H 11-8. 인라인 뷰
이어쓰기 9.I 11-10. "Top-N"분석
이 원글에 이어쓰기

학습자료 목록

Total 91건 1 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기