데이터베이스

[mysql] VIEW

엉으니 2016. 2. 18. 17:43

-- 참고 : http://warmz.tistory.com/entry

  http://www.cubrid.org/

VIEW란?

가상의 테이블이다.

테이블이 아니지만 테이블처럼 행동하게 할 수 있다.

설정을 어떻게 하느냐에 따라서 업데이트를 가능하게 할 수도, 불가능하게 할 수도 있다. 

( 하지만 데이터 삽입 및 삭제는 테이블에 작업하는게 낫다 )

조인이나 유니온을 뷰로 만들면 쿼리를 단순하게 만들 수 있다. 


VIEW 생성

CREATE VIEW 뷰이름 AS

SELECT 열1, 열2 FROM 테이블이름

WHERE 조건;


VIEW 조회

SELECT * FROM 뷰이름;


VIEW 삭제

DROP VIEW;


VIEW 구조 보기

DESC 뷰이름;


모든 VIEW보기

SHOW TABLES; (테이블과 같이 나옴)


VIEW의 장점

 --필요한 데이터만 모아서 보기 때문에 데이터베이스의 구조를 바꿔도 뷰는 뷰대로 사용할 수 있다.

 --사용자에게 필요없는 정보를 숨기는 뷰를 만들 수 있다.


VIEW의 주의사항

 --뷰가 집계함수를 사용한다면, 데이터의 변경에 뷰를 사용할 수 없다.

 --뷰에 GROUP BY, DISTINCT, HAVING이 포함되어있으면 데이터를 변경할 수 없다.

 --테이블을 삭제하기 전에 뷰를 먼저 삭제한다.


업데이트 가능한 VIEW

 --뷰를 사용하여 뷰와 관련된 테이블의 데이터를 변경할 수 있다.

 --관련 테이블들의 NOT NULL인 열들만 포함하고 있어야 한다.

 --DISTINCT, UNIQUE, GROUP BY, HAVING구문을 포함하지 않아야한다.

 --집계함수를 포함하지 않아야한다.

 --UNION ALL구문을 사용할 경우 행이 입력될 테이블은 시스템이 결정한다.

 --산술 연산자가 포함된 숫자타입의 컬럼을 포함하면 업데이트 할 수 없다.

반응형

'데이터베이스' 카테고리의 다른 글

[ORACLE] 시노님(SYNONYM)  (0) 2017.09.29
[mysql] loop로 더미데이터 삽입  (1) 2016.03.03
[mysql] UNION  (0) 2016.02.18
[mysql] JOIN  (0) 2016.02.18
[mysql] index  (0) 2016.02.12