View : DataBase 내에서 '가상의 테이블'을 의미하며, 생성된 뷰는 기존의 테이블처럼 행과열의 데이터값을 가지는 테이블처럼 보이지만, 실제 테이블처럼 데이터들을 저장하고 있지는 않다.
특징
잘 알려진 장점으로는
1. 테이블 전체가 아닌 필요한 필드만을 보여주는 기능으로써 사용자에게 편리함을 제공한다.
2. 특정 데이터 그리드를 만들기 위해 복잡한 쿼리들을 view를 통해 단순화 기능을 제공한다.
3. 쿼리를 재사용 할 수 있다.
반대로 단점으로는
1. 한번 만들어진 view는 변경이 불가능하다.
2. 자신만의 인덱스를 가질 수 없으며,
3. 해당 view에 관한 작업에 대한 제한사항을 많이 가진다.
View의 활용
view 생성에 앞서 이해를 돕기위해 간단하게 사용자의 이름과 나이 정보를 가지는 'view_test' Table을 생성하였다.
위의 Table을 가지고 같은 연령대를 가지는 사람의 그룹을 표한하기 위해 CASE문 및 GROUP BY를 활용한
다소 복잡한 쿼리를 사용해 데이터를 출력했다.
이러한 결과값을 한번만 쓴다고 하면 위와 같이 복잡한 쿼리를 활용하는 것도 좋지만,
프로젝트를 진행하면서 이러한 복잡한 쿼리를 한번만 쓴다고 보장을 할 순 없기 때문에 따로 저장을 하고 싶을지도 모른다.
여기서 사용되는게 View 기능이다.
MysqlWorkBench에서 사용 중인 DB에 접속 후 Schemas 목록 중 'Views'탭을 우클릭 하면 View를 생성할 수 있다.
Create View를 클릭하면 이러한 DDL을 작성할 수 있는 창이 뜬다.
CREATE VIEW : View를 생성하는 명령문. '' 안에 내가 원하는 View의 명칭을 넣어줄 수 있다.
AS 뒤로는 필요한 형식의 가상테이블을 생성하는 SELECT문을 넣어주면 된다.
(여기에 방금 전의 쿼리를 옮겨 쓰면된다.)
이런식으로 쿼리를 넣은 후 'Apply' 버튼을 눌러 View를 생성해주면 끝.
마지막으로 기존의 복잡한 쿼리를 View Table을 활용해 간단하게 출력하는 결과를 보여줄 수 있다.
이러한 가상테이블 View의 기능을 활용하여
여러개의 가상테이블을 종합하여 더욱 다양한 데이터를 쉽게 추출할 수 있는
개발자가 되었으면 좋겠다.
'CS > DataBase' 카테고리의 다른 글
[TIL] RDBMS (1) | 2024.10.10 |
---|---|
[MySQL] 인덱스(INDEX) (1) | 2023.12.29 |
[Mysql] 스토어드 프로시저 (0) | 2022.10.24 |
개발 기술 블로그, Dev
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!