집 >데이터 베이스 >MySQL 튜토리얼 >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 중국어 웹사이트의 기타 관련 기사를 참조하세요!