기술나눔

데이터베이스의 데이터 보기: 심층적인 이해 및 적용

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

소개

프로그래밍 드리머(대학 학생용 버전)-CSDN 블로그

데이터베이스 관리에서 데이터 뷰(View)는 쿼리에 의해 내용이 정의되는 가상 테이블 구조를 제공하는 매우 중요한 개념입니다. 데이터 보기는 복잡한 쿼리를 단순화하고, 데이터 보안을 강화하고, 논리적 데이터 독립성을 높이는 데 중요합니다. 이 기사에서는 데이터베이스의 데이터 보기를 자세히 살펴보고 SQL 샘플 코드를 통해 데이터 보기의 생성, 사용 및 관리를 보여줍니다.

一、什么是数据视图?🍔

데이터 뷰는 데이터베이스에 저장된 SQL 쿼리 문의 결과 집합입니다. 물리적으로 저장된 데이터 모음이 아니라 논리적으로 표현된 데이터입니다. 뷰를 쿼리하면 데이터베이스 시스템은 실제 테이블을 쿼리하는 것과 마찬가지로 뷰를 정의하는 SQL 문을 실행하고 결과 집합을 반환합니다.

二、数据视图的优势🎁

  1. 복잡한 쿼리 단순화: 뷰를 생성함으로써 복잡한 쿼리 로직을 캡슐화할 수 있습니다. 사용자는 복잡한 SQL 문을 반복적으로 작성하지 않고도 뷰를 쿼리하기만 하면 필요한 데이터를 얻을 수 있습니다.
  2. 데이터 보안 강화: 뷰를 통해 기본 테이블의 데이터에 대한 사용자 접근을 제한하고, 사용자에게 필요한 데이터 컬럼이나 계산된 데이터만 표시함으로써 민감한 데이터를 보호할 수 있습니다.
  3. 논리적 데이터 독립성: 뷰는 기본 테이블의 구조적 변경 사항을 숨길 수 있습니다. 기본 테이블 구조가 변경되면 뷰의 정의가 변경되지 않는 한 뷰를 쿼리하는 사용자의 결과는 영향을 받지 않습니다.

三、创建数据视图🥞

다음은 SQL을 이용하여 데이터 뷰를 생성하는 예이다.다음과 같은 파일이 있다고 가정합니다.employees 테이블에는 직원 ID, 이름, 부서 ID 등과 같은 직원 정보가 포함됩니다. 이제 각 부서의 직원 수를 표시하는 뷰를 만들고 싶습니다.

  1. CREATE VIEW department_employee_count AS
  2. SELECT department_id, COUNT(*) AS employee_count
  3. FROM employees
  4. GROUP BY department_id;

이 견해department_employee_count각 부서 ID와 해당 직원 수를 표시합니다.

四、查询数据视图🍞

데이터 뷰 쿼리는 일반 테이블 쿼리와 매우 유사합니다. 다음은 위에서 생성된 뷰를 쿼리하는 예입니다.

SELECT * FROM department_employee_count;

이 SQL 문은 각 부서의 직원 수를 반환합니다.

五、更新和删除数据视图🎃

알아채다 : 뷰는 테이블처럼 쿼리할 수 있지만 뷰의 데이터 업데이트(INSERT, UPDATE, DELETE)는 더 복잡하며 모든 뷰가 업데이트 작업을 지원하는 것은 아닙니다. 업데이트 작업은 특정 조건을 충족하는 경우에만 뷰에서 수행할 수 있습니다(예: 뷰가 단일 테이블을 기반으로 하며 집계 함수, DISTINCT, GROUP BY 등을 포함하지 않음).

뷰의 데이터를 업데이트해야 하는 경우 일반적인 접근 방식은 기본 테이블의 데이터를 업데이트하는 것입니다. 왜냐하면 뷰는 기본 테이블 데이터의 논리적 표현일 뿐이기 때문입니다.

六、删除数据视图🍪

뷰가 더 이상 필요하지 않으면 다음을 사용할 수 있습니다.DROP VIEW 삭제하라는 명령문입니다.다음은 삭제됩니다department_employee_count보기 예:

DROP VIEW department_employee_count;

요약하다

데이터 보기는 복잡한 쿼리 논리를 캡슐화하고 데이터 보안을 강화하며 논리적 데이터 독립성을 제공함으로써 데이터베이스 운영 및 관리를 크게 단순화하는 데이터베이스 관리의 강력한 도구입니다. 이 글의 소개와 샘플 코드를 통해 여러분은 데이터 뷰에 대한 더 깊은 이해를 갖고 이를 실제 응용에서 유연하게 사용할 수 있을 것이라고 믿습니다.