MySQL 뷰: 테이블에서 뷰를 만드는 방법

⚡ 스마트 요약

MySQL 뷰는 자체 데이터를 저장하지 않고 저장된 SELECT 쿼리 결과를 표시하는 가상 테이블입니다. 이 자료에서는 myflixdb 데이터베이스를 사용한 실행 가능한 예제와 함께 뷰를 생성, 쿼리, 조인 및 삭제하는 방법을 설명합니다.

  • 🧱 핵심 정의: 뷰는 테이블처럼 동작하지만 데이터를 저장하지 않는 명명된 SELECT 문입니다.
  • 🔐 보안 혜택: 뷰는 권한이 있는 열만 표시하고 민감한 필드는 사용자에게 숨겨둡니다.
  • ♻️ 재사용성 이점: 복잡한 다중 테이블 JOIN 쿼리는 한 번만 작성하면 단일 행 SELECT 쿼리로 재사용할 수 있습니다.
  • 🛠️ 생성 구문: `CREATE VIEW `view_name` AS SELECT` 문은 데이터베이스 내부에 뷰를 정의합니다.
  • 🗑️ 라이프사이클 명령어: SHOW CREATE VIEW 명령은 저장된 쿼리를 보여주고, DROP VIEW 명령은 기본 테이블을 건드리지 않고 해당 쿼리를 삭제합니다.

MySQL 조회수

뷰란 무엇입니까? MySQL?

VIEWS 자신의 데이터를 저장하지 않고 다른 테이블에 저장된 데이터를 표시하는 가상 테이블입니다. 즉, VIEWS는 SQL 쿼리일 뿐입니다. 뷰에는 테이블의 행 전체 또는 일부가 포함될 수 있습니다. ㅏ MySQL 뷰는 하나의 테이블 또는 여러 테이블의 데이터를 표시할 수 있습니다.

MySQL 뷰 구문

이제 뷰를 생성하는 데 사용되는 기본 구문을 살펴보겠습니다. MySQL.

CREATE VIEW `view_name` AS SELECT statement;

Neocity

  • “CREATE VIEW `view_name`" 말하다 MySQL 'view_name'이라는 데이터베이스에 뷰 객체를 생성하는 서버
  • "AS SELECT 문" 은(는) MySQL 견해. SELECT 문은 하나의 테이블 또는 여러 테이블의 데이터를 포함할 수 있습니다.

뷰를 사용하는 이유는 무엇입니까?

집을 짓기 전에 전망이 실제로 어떤 이점을 가져다주는지 아는 것이 도움이 됩니다.

주로 다음 3가지 이유로 뷰를 사용하고 싶을 수 있습니다.

  • 궁극적으로 당신은 당신의 것을 사용하게 될 것입니다. SQL 데이터베이스를 데이터 요구 사항에 사용하는 애플리케이션을 개발하려면 데이터베이스 관련 지식이 필요합니다. 애플리케이션에서 테이블 자체를 사용하는 대신 원래 테이블 구조의 뷰를 사용하는 것이 좋습니다. 이렇게 하면 데이터베이스를 리팩토링할 때 기존 코드가 애플리케이션을 손상시키지 않고 뷰를 통해 원래 스키마를 볼 수 있습니다.
  • VIEWS는 재사용성을 높입니다. 조인을 반복적으로 포함하는 복잡한 쿼리를 만들 필요가 없습니다. 모든 복잡성이 VIEWS를 사용하는 단일 쿼리 줄로 변환됩니다. 이러한 압축된 코드는 애플리케이션에 통합하기가 더 쉽습니다. 이렇게 하면 오타가 발생할 가능성이 없어지고 코드가 더 읽기 쉬워집니다.
  • VIEWS는 데이터 보안에 도움이 됩니다. 뷰를 사용하면 사용자에게 승인된 정보만 표시하고 신용카드 번호와 같은 민감한 데이터를 숨길 수 있습니다.

뷰를 생성하는 방법 MySQL

구문과 이점이 확립되었으므로 아래 단계에 따라 전체 작동 뷰를 구축할 수 있습니다.

다음은 뷰를 만드는 단계별 프로세스입니다. MySQL:

단계 1) "myflixdb"를 사용하여 첫 번째 뷰를 만듭니다.

이제 “myflixdb”를 사용하여 첫 번째 뷰를 생성해 보겠습니다. 멤버 테이블에 표시되는 열을 제한하는 간단한 뷰를 생성하겠습니다.

권한 요구 사항에 따라 회계 부서에서는 회원 테이블에서 회원 번호, 이름 및 성별만 볼 수 있다고 가정해 보겠습니다. 이를 위해 뷰를 생성할 수 있습니다.

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

단계 2) 뷰 노드 확장

위 스크립트를 실행하면 MySQL myflixdb에 대해 워크벤치를 사용하고 데이터베이스 탐색기에서 뷰 노드를 확장하면 다음과 같은 결과를 얻을 수 있습니다.

뷰 생성 위치 MySQL

이제 account_v_members 개체가 데이터베이스 보기 개체에 표시됩니다.

단계 3) SELECT 문 실행

이제 다음을 실행해 보겠습니다. SELECT 문 아래 표시된 대로 뷰에서 모든 필드를 선택합니다. MySQL 보기 예제를 만듭니다.

SELECT * FROM `accounts_v_members`;

단계 4) 스크립트 실행

위 스크립트를 실행하면 MySQL myflixdb에 대한 Workbench를 실행한 결과는 아래와 같습니다.

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

회계 부서에 대해 승인된 열만 반환되었습니다. 멤버 테이블에 있는 다른 세부 정보는 숨겨졌습니다.

특정 뷰를 구성하는 SQL 문을 보려면 아래에 표시된 스크립트를 사용하면 됩니다.

SHOW CREATE VIEW `accounts_v_members`;

위 스크립트를 실행하면 뷰 이름과 뷰를 생성하는 데 사용된 SQL SELECT 문이 제공됩니다.

조인 및 보기 MySQL

단일 테이블 뷰는 가장 간단한 경우입니다. 뷰는 여러 테이블에 대한 쿼리를 감싸는 형태로 사용될 때 훨씬 더 유용해집니다.

이제 여러 테이블과 사용이 포함된 상당히 복잡한 예를 살펴보겠습니다. 조인.

멤버, 영화, 영화 대여라는 3개의 테이블에서 정보를 가져오는 생성된 JOIN을 패키지화합니다. 다음은 이를 달성하는 데 도움이 되는 스크립트입니다.

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date`
FROM `movierentals` AS mr
INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number`
INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

위 스크립트를 실행하면 myflixdb에 General_v_movie_rentals라는 뷰가 생성됩니다.

이제 General_v_movie_rentals라는 테이블에서 모든 필드를 선택해 보겠습니다.

SELECT * FROM `general_v_movie_rentals`;

위 스크립트를 실행하면 MySQL 워크 벤치 myflixdb에 대해 검색한 결과는 아래와 같습니다.

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

멤버, 영화, 영화 대여 세부 정보에 대한 정보를 얻기 위해 복잡한 JOIN 쿼리를 작성할 필요가 없다는 점에 유의하세요. 우리는 단순히 다른 일반 테이블처럼 일반 SELECT 명령문에서 뷰를 사용했습니다. 뷰는 myflixdb 위에서 실행되는 애플리케이션 시스템의 어느 곳에서나 호출할 수 있습니다.

드롭ping 의 조회수 MySQL

DROP 명령을 사용하여 뷰에서 뷰를 삭제할 수 있습니다. 데이터베이스 그것은 더 이상 필요하지 않습니다. 뷰를 삭제하는 기본 구문은 다음과 같습니다.

DROP VIEW `general_v_movie_rentals`;

드롭ping 뷰는 저장된 쿼리만 제거할 뿐이며, 기본 테이블과 해당 데이터는 변경되지 않습니다.

자주 묻는 질문

경우에 따라 다릅니다. INSERT, UPDATE 및 DELETE 작업은 기본 테이블의 NOT NULL 열을 모두 포함하는 단순 뷰에서만 작동합니다. 조인이나 집계 함수를 기반으로 구축된 뷰는 업데이트할 수 없습니다.

테이블은 디스크에 물리적으로 행을 저장합니다. 뷰는 SELECT 문만 저장하고 쿼리가 실행될 때마다 행을 다시 생성하므로 기본 테이블의 최신 데이터를 항상 반영합니다.

아니요. 뷰는 호출될 때마다 기본 SELECT 쿼리를 실행하므로 성능은 원래 쿼리와 동일합니다. MySQL 구체화된 뷰가 없으며 속도는 여전히 기본 테이블 인덱스에 따라 달라집니다.

예. AI 비서 기능은 다음과 같은 도구에 포함되어 있습니다. MySQL 워크 벤치 설명을 바탕으로 CREATE VIEW 문을 작성할 수 있습니다. 실행하기 전에 열 목록과 조인 키를 확인하십시오.

부분적으로는 가능합니다. AI는 카드 번호와 같은 민감한 열을 식별하고 더 안전한 열 목록을 제안할 수 있습니다. 하지만 최종 결정은 조직의 데이터 접근 정책을 따라야 합니다.

이 게시물을 요약하면 다음과 같습니다.