视图:虚拟表的创建与使用

引言 视图(View)是虚拟表,本质是存储的SELECT语句。可以像表一样查询,但不实际存储数据。 一、视图基础 1.1 什么是视图? 视图是一个虚拟表,由查询结果组成。 特点: 不存储数据(只存储定义) 基于基础表动态生成 可以像表一样查询 -- 创建视图 CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition; -- 查询视图 SELECT * FROM view_name; 1.2 视图的作用 简化复杂查询:封装复杂SQL 提高安全性:隐藏敏感字段 逻辑数据独立:修改表结构不影响应用 权限控制:只授予视图权限 二、创建视图 2.1 基础语法 CREATE [OR REPLACE] VIEW view_name [(column_list)] AS select_statement [WITH CHECK OPTION]; 2.2 简单视图 -- 创建用户信息视图(隐藏敏感字段) CREATE VIEW v_user_info AS SELECT id, name, email, created_at FROM users; -- 查询视图 SELECT * FROM v_user_info; 2.3 复杂视图 -- 用户订单统计视图 CREATE VIEW v_user_order_stats AS SELECT u.id, u.name, COUNT(o.id) AS order_count, IFNULL(SUM(o.amount), 0) AS total_amount, ROUND(AVG(o.amount), 2) AS avg_amount FROM users u LEFT JOIN orders o ON u.id = o.user_id GROUP BY u.id, u.name; -- 使用视图 SELECT * FROM v_user_order_stats WHERE order_count > 5; 2.4 带条件的视图 -- 只显示有效商品 CREATE VIEW v_active_products AS SELECT id, name, price, stock FROM products WHERE status = 1 AND stock > 0; 三、查看和管理视图 3.1 查看视图列表 -- 查看所有视图 SHOW FULL TABLES WHERE Table_type = 'VIEW'; -- 查看视图定义 SHOW CREATE VIEW v_user_info; 3.2 修改视图 -- 方式1:CREATE OR REPLACE CREATE OR REPLACE VIEW v_user_info AS SELECT id, name, email, phone, created_at FROM users; -- 方式2:ALTER VIEW ALTER VIEW v_user_info AS SELECT id, name, email, phone, created_at FROM users; 3.3 删除视图 DROP VIEW IF EXISTS v_user_info; 四、视图的更新 4.1 可更新视图 满足以下条件的视图可以更新: ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...