视图概念

它是个“虚拟表”

  • 不存数据,只存查询逻辑。

  • 你查视图时,MySQL自动执行背后的SELECT语句,把结果返回给你。

三个核心特点

特点

说明

简化查询

把复杂SQL封装起来,以后直接查视图

安全性

可以只暴露部分字段给用户,隐藏敏感列

不占存储

只存定义,不存数据(数据仍来自原表)

一句话总结

视图就是把SQL语句存起来,给它起个名字,以后当表来查。

视图操作

创建视图

  • 创建视图

创建视图使用 CREATE VIEW 语句。基本语法如下:

 CREATE VIEW 视图名称 AS
 SELECT 选择的列
 FROM 表名
 WHERE 条件;

示例:

 CREATE VIEW employee_view AS
 SELECT id, name, dept_id
 FROM employees
 WHERE dept_id = 1;

这个视图 employee_view 显示了 employees 表中所有 dept_id 为1的员工。

  • 修改视图

要修改视图,你可以先删除原有视图,然后重新创建一个新的视图。MySQL不直接支持修改视图的语法,但可以使用 CREATE OR REPLACE VIEW 来更新视图。语法如下:

 CREATE OR REPLACE VIEW 视图名称 AS
 SELECT 选择的列
 FROM 表名
 WHERE 条件;

示例:

 CREATE OR REPLACE VIEW employee_view AS
 SELECT id, name, dept_id, salary
 FROM employees
 WHERE dept_id = 1;

这个语句将更新 employee_view 视图,添加了 salary 列。

  • 删除视图

删除视图使用 DROP VIEW 语句。基本语法如下:

 DROP VIEW 视图名称;

示例:

 DROP VIEW employee_view;

这个语句将删除 employee_view 视图。

  • 视图的其他操作

查看视图结构:

 SHOW CREATE VIEW 视图名称;

示例:

 SHOW CREATE VIEW employee_view;

列出所有视图:

 SHOW FULL TABLES IN 数据库名 WHERE Table_type = 'VIEW';

示例:

 SHOW FULL TABLES IN my_database WHERE Table_type = 'VIEW';

这些语法和示例涵盖了MySQL中视图的基本创建、修改和删除操作。通过这些操作,你可以管理和使用视图来简化数据操作和查询。