一。视图
在复杂的联合查询场景中,当需要多次使用同一个语句时,引入视图可以对复杂的 SQL 语句进行封装,从而简化操作。
1.1 什么是视图
视图是由 SELECT 语句定义的虚拟表,其结构和数据来源于底层的基表。视图中存储的是查询语句,当用户访问视图时,数据库会执行该查询语句,从基表中提取数据并返回结果。用户可以像操作普通表一样使用视图进行查询、更新和管理。
例如,一个涉及多张表的联合查询语句可以使用视图进行封装,对 SQL 语句进行简化。
1.2 创建视图
创建视图语法:
CREATE VIEW view_name [(column_list)] AS select_statement;
测试数据:查询 MySQL 成绩比 Java 成绩好的同学。
SELECT DISTINCT s.id, s.name, s1.sco AS java_sco, s2.sco AS mysql_sco
FROM student s, score s1, score s2, course c1, course c2
WHERE s.id = s1.student_id AND s.id = s2.student_id
AND s1.course_id = c1.id AND s2.course_id = c2.id
AND c1.name = 'Java' AND c2.name = 'MySQL' AND s1.sco < s2.sco;
使用视图进行包装:
CREATE VIEW v_Java_or_MySQL AS
SELECT DISTINCT s.id, s.name, s1.sco AS java_sco, s2.sco AS mysql_sco
FROM student s, score s1, score s2, course c1, course c2
WHERE s.id = s1.student_id AND s.id = s2.student_id
AND s1.course_id c1.id s2.course_id c2.id
c1.name c2.name s1.sco s2.sco;
v_Java_or_MySQL;


