View
- 물리적인 테이블에 근거한 논리적인 가상의 테이블을 말함.
- View는 실질적으로 데이터를 저장하고 있지 않음.
- View를 만들면 데이터베이스에 질의 시 실제 테이블에 접근하여 데이터를 불러오게 됨.
- 간단하게 말하면 필요한 내용들만 추출해서 사용하는 것.
- 주로 데이터를 조회할 때 가장 많이 사용됨.
- View는 테이블과 유사하며, 테이블처럼 사용이 가능함.
- View는 테이블에 저장하기 위한 물리적인 공간이 필요가 없음.
- 테이블과 마찬가지로 insert, update, delete, select 명령이 가능함.
View를 사용하는 이유
1) 보안 관리를 위해 사용함(중요함)
==> 보안 등급에 맞추어 컬럼의 범위를 정해서 조회가 가능하도록 할 수 있음.
view 생성하는 방법
형식) create view 뷰이름 as 쿼리문;
-- 인사부 view
-- 컬럼에 sal(급여), comm(보너스) 컬럼은 제외
create view emp_insa
as
select empno, ename, job, mgr, hiredate, deptno
from emp;
-- 영업부 view
-- 컬럼에 sal(급여) 컬럼은 제외
create view emp_sales
as
select empno, ename, job, mgr, hiredate, comm, deptno
from emp;
-- 회계부 view
-- 컬럼의 emp 테이블의 모든 컬럼이 반영
create view emp_account
as
select *
from emp;
읽기전용 view 생성하는 방법
-- 읽기 전용 view를 만들게 되면 insert, update, delete 쿼리가 안 됨.
-- 읽기 전용 view를 만드는 방법 : 쿼리문 맨 마지막에 with read only 문구 추가.
CREATE VIEW EMP_VIEW1
AS
SELECT *
FROM EMP
WITH READ ONLY;
같은 이름의 view가 있는 경우에는 삭제하고 다시 view를 만들고 싶을 때
create or replace view emp_sales
as
select * from emp;
view를 만들 때 그룹함수를 사용시에는 반드시 별칭을 설정해 주어야 함.
-- 부서별로 부서별 급여합계, 부서별 급여 평균을 구한 view를 만들어 화면에 보여주세요.
create view emp_deptno
as
select deptno, sum(sal) "급여합계", avg(sal) "급여평균"
from emp
group by deptno;
2) 사용자의 편의성을 제공함.
view를 만들때 컬럼만 만들고 싶은 경우
==> 조건을 말이 안되는 조건을 작성하면 됨.
create or replace view emp_view2
as
select * from emp
where deptno = 1; -- 부서번호가 1인 부서는 없다
[문제2] emp 테이블에서 각 부서별 최대급여와 최소급여를 보여주는 view를 만들되,
sal_view 라는 이름으로 만들어 화면에 보여주세요.
create or replace view sal_view
as
select deptno, max(sal) "최대급여", min(sal) "최소급여"
from emp
group by deptno;
'Back-End > Database' 카테고리의 다른 글
[SQL] 서브 쿼리 (0) | 2021.10.05 |
---|---|
[SQL] 컬럼 속성(제약 조건) (0) | 2021.10.05 |
[SQL] 숫자 관련 기본 함수 (0) | 2021.10.05 |
[SQL] dual 테이블/ 기본 함수_1(날짜 관련 / 문자 관련) (0) | 2021.10.05 |
[SQL] JOIN (0) | 2021.10.05 |
댓글