>데이터 베이스 >MySQL 튜토리얼 >mysql 보기를 위한 공간이 있나요?

mysql 보기를 위한 공간이 있나요?

青灯夜游
青灯夜游원래의
2020-10-14 16:06:592717검색

mysql 보기에 공간이 없습니다. MySQL 뷰는 실제로 데이터베이스에 존재하지 않으며 공간을 할당하지 않는 가상 테이블이다. MySQL 데이터베이스는 뷰 정의만 저장하고 뷰에 데이터를 저장하지 않습니다. 이러한 데이터는 뷰를 정의하는 쿼리에서 참조하는 실제 테이블에 저장됩니다.

mysql 보기를 위한 공간이 있나요?

(추천 튜토리얼: mysql 동영상 튜토리얼)

MySQL 뷰(View)도 실제 테이블처럼 열과 행으로 구성되어 있지만 실제로는 존재하지 않는 뷰입니다. . 행 및 열 데이터는 뷰를 정의하는 쿼리에 사용된 테이블에서 가져오며 뷰가 사용될 때 동적으로 생성됩니다.

데이터베이스는 뷰 정의만 저장하고 뷰에 데이터를 저장하지 않습니다. 이러한 데이터는 뷰를 정의하는 쿼리에서 참조하는 실제 테이블에 저장됩니다. 뷰를 사용하여 데이터를 쿼리할 때 데이터베이스는 실제 테이블에서 해당 데이터를 검색합니다. 따라서 뷰의 데이터는 실제 테이블의 데이터에 따라 달라집니다. 실제 테이블의 데이터가 변경되면 뷰에 표시되는 데이터도 변경됩니다.

뷰는 원본 테이블에서 사용자에게 유용한 정보를 선택할 수 있습니다. 사용자에게 유용하지 않거나 사용자가 알 권한이 없는 정보는 필터링과 유사하게 직접 차단할 수 있습니다. 이는 애플리케이션을 단순화할 뿐만 아니라 시스템의 보안도 보장합니다.

예를 들어 다음 데이터베이스에는 회사 부서 테이블 부서가 있습니다. 테이블에는 부서번호(d_id), 부서명(d_name), 기능(function), 사무실 주소(address)가 포함됩니다. 부서 테이블의 구조는 다음과 같습니다.

mysql> DESC department;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| d_id     | int(4)      | NO   | PRI | NULL    |       |
| d_name   | varchar(20) | NO   | UNI    | NULL    |       |
| function | varchar(50) | YES  |     | NULL    |       |
| address  | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.02 sec)

직원 테이블 작업자도 있습니다. 테이블에는 직원의 직업 번호(num), 부서 번호(d_id), 이름(name), 성별(sex), 생년월일(birthday), 집 주소(homeaddress)가 포함됩니다. 작업자 테이블의 구조는 다음과 같습니다.

mysql> DESC worker;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| num         | int(10)     | NO   | PRI | NULL    |       |
| d_id        | int(4)      | YES  |MUL     | NULL    |       |
| name        | varchar(20) | NO   |     | NULL    |       |
| sex         | varchar(4)  | NO   |     | NULL    |       |
| birthday    | datetime    | YES  |     | NULL    |       |
| homeaddress | varchar(50) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)

각 부서장의 권한 범위가 다르기 때문에 각 부서의 리더는 해당 부서의 직원 정보만 볼 수 있으며, 리더는 해당 직원의 정보에 관심을 두지 않을 수도 있습니다. 생일과 집 주소. 이러한 목적을 달성하기 위해 각 부서의 리더에 대한 뷰를 설정할 수 있습니다. 이 뷰를 통해 리더는 해당 부서에 속한 직원의 지정된 정보만 볼 수 있습니다.

예를 들어 생산 부서에 대해 product _view라는 뷰를 만듭니다. product_view 조회를 통해 생산부서장은 생산부서 직원들의 직급, 이름, 성별 등의 정보만 볼 수 있습니다. 이러한 부서 테이블과 작업자 테이블의 정보는 여전히 해당 테이블에 존재하며, product_view 뷰에는 데이터 정보가 저장되지 않습니다. 부서 테이블과 작업자 테이블의 정보가 변경되면 product_view 뷰에 표시되는 정보도 그에 따라 변경됩니다.

팁: 여러 테이블에서 지정된 필드의 데이터를 자주 쿼리해야 하는 경우 이러한 테이블에 뷰를 만들고 이 뷰를 통해 해당 필드의 데이터를 표시할 수 있습니다.

MySQL 뷰는 입력 매개변수 기능을 지원하지 않으므로 여전히 상호작용성이 부족합니다. 그러나 많이 변경되지 않는 작업의 경우 뷰를 사용하면 사용자 작업이 크게 단순화될 수 있습니다.

뷰는 데이터 테이블과 다르지 않습니다. 차이점은 다음과 같습니다.

  • 뷰는 데이터베이스의 실제 테이블이 아니라 데이터베이스의 실제 테이블을 기반으로 하는 구조와 데이터를 갖는 가상 테이블입니다. 쿼리를 기반으로 한 데이터입니다.

  • 데이터베이스에 저장된 쿼리 작업 SQL 문은 뷰 쿼리가 참조하는 실제 테이블에서 가져온 열 데이터와 행 데이터를 정의합니다. 이러한 데이터는 뷰가 참조될 때 동적으로 생성됩니다.

  • 뷰에는 실제 물리적 레코드가 없으며 데이터 세트 형태로 데이터베이스에 저장되지 않습니다. 해당 데이터는 실제로 뷰가 참조하는 실제 테이블에 저장됩니다.

  • View는 데이터의 창이고 테이블은 내용입니다. 테이블은 실제 데이터의 저장 단위인 반면, 뷰는 다양한 표시 방법으로만 데이터를 표시하며 데이터 소스는 여전히 실제 테이블입니다.

  • View는 데이터 테이블의 특정 필드로 구성된 데이터를 조회할 수 있는 방법입니다. 보안 관점에서 볼 때 뷰의 데이터 보안은 더 높습니다. 뷰를 사용하는 사용자는 데이터 테이블을 건드리지 않으며 테이블 구조를 모릅니다.

  • 뷰 생성 및 삭제는 뷰 자체에만 영향을 미치며 해당 기본 테이블에는 영향을 미치지 않습니다.

위 내용은 mysql 보기를 위한 공간이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.