본문 바로가기
DBMS/mysql

mysql 기본 문법정리 - view

by solutionmaster 2023. 5. 3.

mysql은 따로 깃헙에 수업자료를 올리기 애매한 관계로 블로그에 따로 정리하여 작성할까 한다.

우선 오늘배운 view관련 하여 정리를 할 것이고 추후에 차례대로 정리하여 블로그를 작성할 예정이다.
다음은 view의 기본적인 개념사항이다.

* 엄청 공들여 정리한다기 보다 그날 배운 수업에 대한 복습목적으로 ..

1. view 개념

  • 뷰(view)
    . 필요한 정보만 추출하여 가상테이블 형태(view)로 제공한다.
    . 복잡한 질의문을 간소화
    . 작업결과를 임시로
    . 뷰를 기초로 다른 뷰를 생성할수도 있다.
    . 관리자로부터 테이블에 대한 접근권한과 생성권한을 부여받아야 한다.
  • 목적
    . 데이터 노출로부터 데이터베이스를 보호(정보보호/관리)
    . 데이터이 독립성
    . 다양한 구조의 테이블 사용효과
    . 작업의 단순화
  • 생성방법
    CREATE VIEW 이름 AS
    SELECT 칼럼 조건문;
  • 수정
    ALTER VIEW 이름(컬럼,컬럼...)as
    select 컬럼,컬럼... where 조건;
    *컬럼을 맞춰준다.
  • 삭제
    DROP VIEW 이용
    *삭제를 해도 원래 테이블에는 아무런 영향이 없다.
  • 예외사항(뷰를 통한 입력이 안되는 경우)
    . 원본 테이블 not null의 칼럼은 view에도 존재해야 insert가 된다. (not null고려)
    . 그룹함수를 사용한 뷰에서 데이터 입력불가
    . 가공한 데이터는 뷰에 입력될수 없다.
    . join 한 뷰에서는 데이터 입력 불가.

2. 사용예시

#컴퓨터과학과 교수view를 생성해보자

create view 컴퓨터과학과 as  
select \* from 교수 where 소속학과='컴퓨터과학과';

#조건을 걸어 뷰를 만들기, 강의테이블에서 인원제한이 100명이상인 강의의 강의번호, 강의이름, 교수번호, 인원제한 칼럼 '대강의' 뷰 생성
create view 대강의 as
    select 강의번호, 강의이름, 교수번호, 인원제한 from 강의 where 인원제한>=100;

뷰를 검색할 떄도 마찬가지로 select를 사용하여 검색한다.
select * from 대강의;

#조인을 사용한 view 생성, 직급이 사원에 해당하는 사람들의 사번, 이름, 직급, 수당, 부양가족수를 검색하는 뷰생성
create view 사원 as
    select a.사번, b.성명, a.직급, a.수당, b.부양가족수 
    from 급여 a inner join 신상 b
    on a.사번=b.사번;
    select * from 사원;

댓글