视图相当于某个查询语句的别名,在使用上可以当成一个虚拟表来使用。创建视图的语句如下:

CREATE VIEW 视图名 AS 查询语句;

比如:

CREATE VIEW male_student_view AS SELECT s1.number, s1.name, s1.major, s2.subject, s2.socre 
FROM student_info AS s1 INNER JOIN student_score AS s2 WHERE s1.number = s2.number and s1.sex = '男';

后续在使用时,就可以用male_student_view来代表后面的查询语句,比如:

SELECT * FROM male_student_view;
SELECT subject, AVG(score) FROM male_student_view WHERE score > 60 GROUP BY subject HAVING AVG(score) > 75 LIMIT 1;
SELECT * FROM male_student_iew WHERE number IN (SELECT number FROM student_info WHERE major = '计算机科学与工程');


创建视图时还可以自定义列名,比如:

CREATE VIEW student_info_view(no,n,m) AS SELECT number, name, major FROM student_info;


查看视图:

SHOW TABLES;

通过查看表的方式来查看视图,侧面说明视图其实就是虚拟表。

查看视图结构:

SHOW CREATE VIEW 视图名\G

更新视图:

UPDATE student_info_view SET n = '狗哥哥' WHERE no = 20210101;

当视图中的每一条记录都与底层的每一条记录一一对应时,可以通过UPDATE更新视图。

不建议在视图上使用INSERT、DELETE、UPDATE!


删除视图:

DROP VIEW 视图名;

















  • 无标签