Linux/SQL

[DBMS] 뷰 View

GGkeeper 2021. 11. 30. 00:54

• 뷰(VIEW)

하나 이상의 테이블(또는 다른 뷰)에서 원하는 데이터를 선택하여 새로운 가상 테이블로 만들어 주는 것

다른 테이블에 있는 데이터를 보여줄 뿐이며 데이터 자체를 포함하고 있는 것은 아님

저장장치 내에 물리적으로 존재하지 않고 가상테이블로 만들어 짐

논리적인 독립성을 제공


• 뷰(View)의 장점

데이터베이스의 구조를 변경하여도 테이블에 의존하는 어플리케이션을 변경할 필요가 없음

복잡한 쿼리를 단순하게 만들 수 있어 편리함

사용자에게 필요 없는 정보를 숨길 수 있음


• 뷰 생성

mysql> CREATE  VIEW  <뷰이름>  AS  <SELECT 구문> [ WITH CHECK OPTION ]

- VIEW 리스트 및 구조 학인

기존 테이블 조회와 동일하게 조회 가능


• 뷰 데이터 조회

기존 테이블 데이터 조회와 동일하게 SELECT 문으로 조회 가능

mysql> SELECT <칼럼 [ , ... ]> FROM <뷰 이름> ;


• 뷰 수정

mysql> ALTER  VIEW  <뷰이름>  AS  <SELECT 구문>


• 원본 테이블 데이터 추가

mysql> INSERT  INTO  <원본 테이블 이름>  VALUES ( ‘데이터’ , ... ) ;

= View 테이블에서는 원본 테이블에서 추가한 데이터가 보인다.


• 뷰 데이터 추가

 

- VIEW는 하나 이상의 테이블에서 데이터를 가져와 만들 수 있기 때문에 데이터 입력에 제한이 있음 

- UNION, JOIN, 서브쿼리를 이용해 만들어진 뷰는 INSERT 사용 불가 

- 하나의 테이블을 이용해 만들어진 뷰는 제약사항에 위배되지 않는 한 사용 가능


• 원본 테이블 데이터 수정

mysql> UPDATE  <원본 테이블 이름>  SET  <칼럼명>=<수정 데이터>  [ 조건 ] 

= View 테이블에서는 원본 테이블에서 수정한 데이터가 보인다.


• 뷰 데이터 수정

mysql> UPDATE  <뷰 이름>  SET  <칼럼명>=<수정 데이터>  [ 조건 ]


• 뷰 삭제

mysql> DROP  VIEW  <뷰이름>

'Linux > SQL' 카테고리의 다른 글

[DBMS] 트랜잭션 Transaction : Autocommit 기능 설정  (0) 2021.11.30
[DBMS] 트랜잭션 Transaction  (0) 2021.11.30
[DBMS] 유니온 Union  (0) 2021.11.30
[DBMS] JOIN 조인  (0) 2021.11.30
[DBMS] 데이터베이스 엔진 (Database Engine)  (0) 2021.11.30