MySQL에서 **View(뷰)**는 하나 이상의 테이블에서 데이터를 조회하는 데 사용되는 가상 테이블입니다. 실제로 데이터를 저장하지 않으며, 테이블에 정의된 SQL 쿼리의 결과를 기반으로 생성됩니다. View는 복잡한 쿼리를 단순화하거나 특정 사용자에게 필요한 데이터만 제공하는 데 주로 사용됩니다.
View의 특징
View는 실제 데이터가 저장되지 않는 가상 테이블입니다. 데이터를 보여줄 뿐, 저장된 테이블에서 쿼리할 때마다 결과가 갱신됩니다.
복잡한 쿼리를 View로 정의해 두면, 매번 복잡한 쿼리를 작성할 필요 없이 View를 통해 쉽게 데이터에 접근할 수 있습니다.
일부 View는 데이터를 조회만 할 수 있으며, 특정 조건을 만족하는 경우 데이터를 수정할 수도 있습니다.
테이블의 전체 데이터를 노출하지 않고, 특정 데이터만 접근하도록 제한할 수 있습니다.
집계 함수가 들어가는 뷰는 수정이 불가능합니다.
View를 업데이트 가능합니다.
View를 삽입하는 것은 조건이 존재합니다. 테이블의 모든 필드의 값을 넣어주어야하며 일부만 넣어주면 생성이 불가능합니다. 전체를 다 넣거나 디폴트를 지정해주어야합니다.
View의 장점
여러 테이블을 조인하거나 특정 조건을 적용해야 하는 복잡한 쿼리를 View로 만들어두면, 간단히 데이터를 조회할 수 있습니다.
View를 사용해 특정 사용자가 접근할 수 있는 데이터를 제한할 수 있습니다. 예를 들어, 민감한 정보를 제외한 데이터만 노출할 수 있습니다.
테이블 구조가 변경되더라도 View만 수정하면 기존 쿼리 로직을 쉽게 유지할 수 있습니다.
테이블의 구조나 내부 동작을 사용자에게 노출하지 않고, 비즈니스 로직에 맞는 데이터만 보여줄 수 있습니다.
View의 단점
한 번 정의된 View는 변경할 수 없습니다.
View는 매번 실제 테이블에서 데이터를 조회하기 때문에, 복잡한 View나 많은 데이터를 조회하는 경우 성능에 영향을 미칠 수 있습니다.