집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 뷰의 개념과 운영 기능은 무엇입니까?
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;
데이터베이스의 테이블 객체 및 뷰 객체 보기
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 작업을 지원하지 않습니다.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;
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!