SQL视图(View)
视图是SQL中的一个虚拟表,它基于SQL查询的结果集。视图不存储数据本身,而是存储一个查询,每次访问视图时都会执行这个查询。
基本语法:
创建视图
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
查询视图
SELECT * FROM view_name;
修改更新视图
在 SQL 中,你不能直接使用 UPDATE 语句来更新视图,因为视图是基于查询结果生成的虚拟表,而不是实际存储数据的表。
更新视图的实质是通过更新视图所基于的表中的数据,然后视图会反映这些变化。
CREATE OR REPLACE VIEW view_name AS SELECT column1,column2,... FROM table_name WHERE condition;
或者
ALTER VIEW view_name AS SELECT column1,column2,.... FROM table_name WHERE condition;
删除视图
DROP VIEW view_name;
视图的优点
- 简化复杂查询:将复杂的SQL查询封装在视图中,用户只需查询视图
- 安全性:可以限制用户只能访问视图,而不能访问底层基表
- 数据独立性:即使底层表结构变化,也可以保持视图不变
- 重用性:多个查询可以共享同一个视图定义
视图实例:
CREATE VIEW department_salary_stats AS SELECT d.dept_name, COUNT(DISTINCT de.emp_no) AS employee_count, AVG(s.salary) AS avg_salary, MAX(s.salary) AS max_salary, MIN(s.salary) AS min_salary FROM departments d JOIN dept_emp de ON d.dept_no = de.dept_no JOIN salaries s ON de.emp_no = s.emp_no GROUP BY d.dept_name;
浙公网安备 33010602011771号