[MySQL] DB View (뷰) > db

본문 바로가기

db

[MySQL] DB View (뷰)

페이지 정보

작성자 서방님 댓글 0건 조회 40회 작성일 12-05-21 17:04

본문

View(뷰)
 - 자주 쓰는 쿼리를 저장할 수 있다. (매일 확인하는 용도?)
 - 쿼리 상에서만 존재하는 테이블이다. 
    테이블처럼 행동하고, 테이블에 할 수 있는 조작을 똑같이 수행할 수 있기 때문에
    가상 테이블이라고도 한다.
    하지만 가상 테이블은 DB 내에 존재하지 않는다. 가상 테이블은 View를 사용할 때 생성되고 후에 지워진다.
 - 뷰를 사용하면 새 열이 데이터베이스에 추가될 때마다 새 정보가 뷰에 반영된다.
 - Update, Insert, Delete에도 쓸 수 있다.(그러나 테이블에 바로 사용하는 편이 낫다.)
 
View 생성
 Create View 뷰이름 AS
 Select column From table1
 Where title = 'ABC';

View 호출
 Select * From 뷰이름

예) 
 생성 : 쿼터만을 가진 행을 출력하게 해주는 뷰를 작성한다.
 Create View pb_quarters AS
 Select * From piggy_bank
 Where coin = 'Q';

 호출 : 쿼터만을 가진 행만 출력하게 된다.
 Select * From pb_quarters;

View 삭제
 Drop View 뷰이름;

View 구조 보기
 Desc 뷰이름;

모든 View 보기 (테이블과 같이 나온다)
 Show tables;


* 참고 
   - 실제로 뷰는 서브쿼리처럼 동작한다.
     아래 예를 참고하자

예)
  Select * From web_designers;

  를 분해해보면 

  Select * From
  (Select mc.first_name, mc.last_name, mc.phone, mc.email
   From my_contacts mc
   Natural Join job_desired jd
   Where jd.title = 'Web Designer')
AS web_designers;

  와 같다. 끝에 AS web_designers를 붙이는 이유는
  From 절에는 테이블이 나와 있어야 하기 때문이다.
  Select문이 가상 테이블을 반환하기는 하지만 별명(Alias)이 없이는 SQL이
  이 테이블(뷰)에 접근할 방법이 없기 때문
이다.
 

View의 장점
 1. 데이터베이스의 구조를 변경하여도 테이블에 의존하는 어플리케이션을 변경할 필요가 없다.
 2. 복잡한 쿼리를 간단한 명령으로 단순하게 만들 수 있어 편리하다.
 3. 사용자에게 필요없는 정보를 숨기는 뷰를 만들 수 있다. 

View 사용시 주의사항
 1. 뷰가 집계 값(SUM, COUNT, AVG 같은)을 사용한다면, 데이터의 변경에 뷰를 사용할 수 없다.
 2. 뷰에 Group By, Distinct, Having이 포함되어 있는 경우 데이터를 변경할 수 없다. 
 3. 테이블을 삭제하기전에 반드시 뷰를 먼저 삭제해야한다.
    데이터베이스 시스템마다 다르나 MySQL의 경우 뷰에 관련된 테이블이 존재하지 않으면
    그 뷰를 Drop할 수 없다.

업데이트 가능한 View
 - 뷰와 관련 테이블의 데이터를 변경할 수 있는 뷰이다.
 - 관련 테이블들의 Not Null 인 열들만을 포함하고 있어야 한다.

업데이트 불가능한 View
 - 뷰와 관련된 테이블에 데이터를 Insert하거나 Update하는데 이용할 수 없는 뷰이다.

댓글목록

등록된 댓글이 없습니다.

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

회원로그인

접속자집계

오늘
139
어제
365
최대
592
전체
40,113

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]