>데이터 베이스 >MySQL 튜토리얼 >MySQL 뷰의 개념과 운영 기능은 무엇입니까?

MySQL 뷰의 개념과 운영 기능은 무엇입니까?

王林
王林앞으로
2023-05-27 22:17:08905검색

공용 데이터베이스 개체

만 볼 수 있습니다.
Object Description
테이블(TABLE) 테이블은 행과 열의 형태로 존재하는 데이터를 저장하는 논리적 단위입니다. records
데이터 사전 은 데이터베이스 관련 정보를 저장하는 테이블인 시스템 테이블입니다. 시스템 테이블의 데이터는 일반적으로 데이터베이스 시스템에 의해 유지 관리됩니다. 프로그래머는 일반적으로 데이터 확인을 수행하기 위한
제약 조건(CONSTRAINT) 규칙과 데이터 무결성 보장을 위한 규칙
뷰(VIEW) 하나 이상의 데이터 테이블에 있는 데이터를 논리적으로 표시하지만 뷰는 데이터를 저장하지 않습니다.
인덱스(INDEX) 는 쿼리 성능을 향상시키는 데 사용됩니다. book
저장 프로시저(PROCEDURE) 는 완전한 비즈니스 처리를 완료하는 데 사용됩니다. 반환 값은 없지만 나가는 매개 변수
저장 함수를 통해 여러 값을 호출 환경에 전달할 수 있습니다. FUNCTION) 은 특정 계산을 완료하는 데 사용되며
트리거(TRIGGER) 는 데이터베이스에서 특정 이벤트가 발생하면 트리거가 트리거되고 해당 이벤트가 발생합니다. 처리가 완료되었습니다

뷰의 개념

뷰는 데이터 자체가 없고 메모리 공간을 거의 차지하지 않는 가상 테이블입니다. SQL에서 중요한 개념입니다.

뷰는 기존 테이블을 기반으로 구축됩니다. 뷰가 구축되는 이러한 테이블을 기본 테이블이라고 합니다.

뷰 생성 및 삭제는 뷰 자체에만 영향을 미치며 해당 기본 테이블에는 영향을 미치지 않습니다. 뷰에 대해 추가, 삭제, 수정(DML) 작업이 수행되면 뷰의 데이터가 그에 따라 업데이트되고, 그 반대의 경우에도 데이터 테이블의 데이터도 변경됩니다.

뷰가 데이터 내용을 제공하는 문은 SELECT 문입니다. 뷰는 저장된 SELECT 문으로 이해하면 됩니다.

데이터베이스에서는 뷰가 데이터를 저장하지 않고, 실제로 데이터 테이블에 데이터가 저장됩니다. 데이터 테이블의 데이터를 추가, 삭제, 수정하면 그에 따라 뷰의 데이터도 변경됩니다. 그 반대.

View는 사용자에게 기본 테이블 데이터를 제공하는 또 다른 표현 형태입니다. 일반적으로 소규모 프로젝트의 데이터베이스에서는 뷰를 사용할 필요가 없지만, 대규모 프로젝트와 데이터 테이블이 상대적으로 복잡할 경우 뷰의 가치는 자주 쿼리되는 결과 집합을 가상 테이블에 넣는 데 도움이 됩니다. 사용 효율성을 향상시킵니다. 이해하고 사용하기가 매우 쉽습니다.

뷰 만들기

쿼리 문의 필드 별칭은 뷰의 별칭으로 나타납니다.

CREATE VIEW vu_emps
AS 
SELECT employee_id,last_name,salary
FROM emps;
CREATE VIEW vu_emps2(emp_id,name,monthly_sal)
AS 
SELECT employee_id,last_name,salary
FROM emps;

여러 테이블에 대한 뷰 생성

CREATE VIEW vu_emp_dept
AS
SELECT employee_id,e.department_id,department_name
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
SELECT * FROM vu_emp_dept;

뷰를 사용하여 데이터 형식 지정

CREATE VIEW vu_emp_dept1
AS
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;

다음을 기반으로 뷰 만들기 the view

CREATE VIEW vu_emp4
AS 
SELECT department_id,department_name FROM vu_emp_dept;
SELECT * FROM vu_emp4;

View 보기

데이터베이스의 테이블 객체 및 뷰 객체 보기

SHOW TABLES;

데이터베이스 구조 보기

DESC vu_emp4;

데이터의 속성 정보 보기

mysql> SHOW TABLE STATUS LIKE 'vu_emp4'\G;
*************************** 1. row ***************************
           Name: vu_emp4
         Engine: NULL
        Version: NULL
     Row_format: NULL
           Rows: NULL
 Avg_row_length: NULL
    Data_length: NULL
Max_data_length: NULL
   Index_length: NULL
      Data_free: NULL
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: NULL
       Checksum: NULL
 Create_options: NULL
        Comment: VIEW
1 row in set (0.00 sec)
ERROR: 
No query specified

뷰의 상세 정의 정보 보기

mysql> SHOW CREATE VIEW vu_emp4\G;
*************************** 1. row ***************************
                View: vu_emp4
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `vu_emp4` AS select `vu_emp_dept`.`department_id` AS `department_id`,`vu_emp_dept`.`department_name` AS `department_name` from `vu_emp_dept`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)
ERROR: 
No query specified

뷰 데이터 업데이트

뷰의 데이터를 업데이트하면 기본 테이블이 테이블의 데이터가 수정됩니다.

테이블의 데이터를 업데이트하면 뷰의 데이터도 수정됩니다

뷰를 업데이트하려면 뷰의 각 행이 기본 테이블의 행과 일치해야 하며 두 개의 일대일 관계가 존재해야 합니다. 또한 뷰 정의에서 다음 조건이 발생하는 경우 뷰는 업데이트 작업을 지원하지 않습니다.

  • 뷰 정의 시 "ALGORITHM = TEMPTABLE"이 지정된 경우 뷰는 INSERT 및 DELETE 작업을 지원하지 않습니다.

    뷰에 기본이 포함되어 있지 않습니다. Null이 아닌 것으로 정의되고 기본값이 지정되지 않은 테이블의 모든 열에 대해 뷰는 INSERT 작업을 지원하지 않습니다.
  • JOIN 통합 쿼리가 SELECT에 사용되는 경우 뷰를 정의하는 문에서는 뷰가 INSERT 및 DELETE 작업을 지원하지 않습니다.
  • 뷰를 정의하는 SELECT 문 다음에 필드 목록에 수학적 표현식이나 하위 쿼리가 사용되는 경우 뷰는 INSERT를 지원하지 않으며 지원하지도 않습니다. 뷰를 정의하는 SELECT 문 다음에 필드 목록에 DISTINCT, 집계 함수, GROUP BY, HAVING, UNION 등이 사용되는 경우 수학 표현식 또는 하위 쿼리
  • 를 사용하는 UPDATE 필드 값을 지원합니다. INSERT, UPDATE 및 DELETE를 지원하지 않습니다.
  • 에는 뷰를 정의하는 SELECT 문에 하위 쿼리가 포함되어 있습니다. FROM 뒤의 테이블이 하위 쿼리에서 참조되면 해당 뷰는
  • 를 지원하지 않습니다.

    뷰 정의는 업데이트할 수 없는 뷰를 기반으로 합니다.
  • 뷰는 데이터를 업데이트할 수 있지만 일반적으로 가상 테이블로서의 뷰는 주로 쿼리를 용이하게 하는 데 사용되므로 뷰 데이터를 업데이트하는 것은 권장되지 않습니다. 뷰 데이터의 변경은 실제 데이터 테이블의 데이터를 조작함으로써 완료됩니다.
뷰 수정

방법 1: CREATE OR REPLACE VIEW 절을 사용하여 뷰 수정

CREATE OR REPLACE VIEW empvu80
(id_number, name, sal, department_id)
AS
SELECT employee_id, first_name || ' ' || last_name, salary, department_id
FROM employees
WHERE department_id = 80;
CREATE OR REPLACE VIEW vu_emp4
AS 
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;

참고: CREATE VIEW 절에 있는 각 열의 별칭은 하위 쿼리의 각 열과 일치해야 합니다.

방법 2: ALTER VIEW

뷰를 수정하는 구문은 다음과 같습니다.

ALTER VIEW 뷰 이름

AS
쿼리 문


ALTER VIEW vu_emp4
AS 
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;

뷰 삭제

DROP VIEW vu_emp4;
DROP VIEW IF EXISTS vu_emp1;
뷰의 장점과 단점

장점:

운영 용이
  • 데이터 중복 감소
  • 데이터 보안
  • 유연하고 변화하는 요구에 적응
  • 복잡한 쿼리 논리 분해 가능
  • 단점:

높은 유지 관리 비용
  • 가독성이 좋지 않음

위 내용은 MySQL 뷰의 개념과 운영 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제