25、SQL 视图
1、SQL 视图(View)
是一种虚拟表,其内容由一条 SELECT 查询语句定义。
视图本身不存储数据(除非是物化视图),而是存储查询语句,每次查询时动态执行底层 SQL 语句返回结果。
1)创建视图(CREATE VIEW)
CREATE [IF NOT EXISTS] VIEW view_name [(column_alias, ...)] AS SELECT column1, column2, ... FROM table_name WHERE condition;
- view_name:视图的名称
- [(column_alias, ...)] :列别名列表(可选),为视图的每一列显式指定名称,覆盖 SELECT 中的原始列名或表达式默认名。
- AS:连接视图定义和查询语句的关键字,表示"后面的 SELECT 语句定义了视图的内容"
- SELECT :视图定义查询,决定了视图返回什么数据。
- SELECT column1, column2, :定义视图包含的列,可以是基表的列,也可以是计算字段
- FROM table_name:指定视图数据来源的表,可以是一个或多个表
- WHERE condition:可选的过滤条件,只有满足条件的行才会出现在视图中
2)删除视图
DROP VIEW [IF EXISTS] view_name;
3)修改视图
使用 CREATE OR REPLACE VIEW 语句,修改视图结构(如添加/删除列、更改查询逻辑)。
-- 原视图 CREATE VIEW employee_info AS SELECT id, name, department FROM employees; -- 需求:添加新列 email,并移除 department -- 修改方式 CREATE OR REPLACE VIEW employee_info AS SELECT id, name, email -- 新的列列表 FROM employees WHERE status = 'active'; -- 也可以同时修改 WHERE 条件等逻辑
执行后:
- 视图
employee_info的结构立即更新为(id, name, email) - 所有后续查询将使用新定义
- 无需手动删除旧视图
3. 查看视图定义
-- PostgreSQL / MySQL SHOW CREATE VIEW view_name; -- SQL Server sp_helptext 'view_name'; -- Oracle SELECT text FROM user_views WHERE view_name = 'VIEW_NAME';
本文来自博客园,作者:chao_xiong,转载请注明原文链接:https://www.cnblogs.com/chao-xiong/p/19245353

浙公网安备 33010602011771号