MySQL 뷰는 쿼리에 의해 내용이 정의되는 가상 테이블입니다. 뷰에는 일련의 명명된 열과 행 데이터가 포함되어 있으며, 행과 열 데이터는 뷰를 사용자 정의하는 쿼리에 의해 참조되는 테이블에서 나오며 동적으로 생성됩니다. 뷰를 참조할 때 생성되는 뷰는 간단히 말해서 선택된 결과들로 구성된 테이블입니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, MySQL 버전 5.7, Dell G3 컴퓨터.
MySQL 뷰란 무엇입니까? 뷰 의미 및 사용법 분석
예를 들어
테이블 쿼리 명령어
SELECT * FROM 表名 ;
테이블을 볼 수 있으며, 보이는 것을 뷰라고 합니다.
다음과 같은 학생 테이블이 있다고 가정합니다
요구 사항: 뷰를 만들고 20세 이상의 학생을 쿼리
CREATE VIEW stu_age_view AS(SELECT * FROM stu WHERE age>20);
뷰를 클릭하면 열리는 테이블을 볼 수 있습니다. 방금 생성되었습니다
테이블에 있는 내용이 필수 내용입니다
뷰를 기반으로 원하는 내용을 계속해서 쿼리할 수 있습니다. 예를 들어 21세 이상의 ls라는 사람을 쿼리하면 효율성이 향상되고 운영 비용을 절감합니다.
CREATE OR REPLACE VIEW 视图名 AS(SELECT [...] FROM [...] );
예: 위에서 생성한 "stu_age_view" 보기는 20세 이상의 학생을 대상으로 했으나 이제는 모든 학생을 대상으로 수정되었습니다.
CREATE OR REPLACE VIEW stu_age_view AS(SELECT * FROM stu );
DROP VIEW 视图名称;
view 운영 시, view 이름은 view 정의로 직접 대체
mysq | 뷰 실행 결과를 먼저 얻고, 그 결과가 중간 결과가 되어 메모리에 임시 저장됩니다.
외부 select 문은 이러한 중간 결과(임시 테이블)를 호출합니다.
이해를 돕기 위해 예를 들어보겠습니다
위의 뷰를 생성할 때 20세 이상의 학생이 필요한 뷰를 생성했습니다
그럼 이 뷰를 확인해 보겠습니다
SELECT * FROM stu_age_view ;
만약 그렇다면 대체 이면 내부 운영 논리는
SELECT * FROM (SELECT *FROM stu WHERE age >20) tihuan;
直接将stu_age_view
的代码替换出来;
如果是具化式,那么它就是先把符合条件的查询出来放在一张表(内存)里,然后直接查询这张表。
(SELECT * FROM stu WHERE age >20) AS TEMPTABLE;SELECT * FROM TEMPTABLE;
上面这两条语句无法运行,只是为了方便举例提出。
那么我们再说回创建视图
ALGORITHM参数(三个)
merge | TEMPTABLE | UNDEFINED |
---|---|---|
处理方式替换式,可以进行更新真实表中的数据 | 具化式,由于数据存储在临时表中,所以不可以进行更新操作 | 没有定义ALGORITHM参数,mysq更倾向于选择替换方式,因为它更加有效。 |
用参数创建视图
CREATE ALGORITHM = MERGE VIEW stu_age_viewAS(SELECT * FROM stu WHERE age >20);
还有两个需要注意的东西是
更新数据时不能插入或更新不符合视图限制条件的记录。
比如上面我们查询了一张年龄大于20的视图,那么在这张视图里面更新数据时如果年龄小于20则会报错。
为可选参数,决定了检查测试的范围,默认值为CASCADED
【相关推荐:mysql视频教程】
위 내용은 mysql 뷰가 뭐야?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!