视图相当于某个查询语句的别名,在使用上可以当成一个虚拟表来使用。创建视图的语句如下:
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 视图名; |