1. 视图的价值与适用场景
第一次接触数据库视图时,我把它当成了"保存下来的查询语句"。直到有次需要反复编写包含5个表连接的报表查询,才真正理解视图的威力。视图本质上是一个虚拟表,它不存储数据,而是保存了查询定义。当业务系统需要频繁执行跨表关联查询时,视图能带来三个显著优势:
- 查询简化:将复杂的JOIN操作、WHERE条件和计算字段封装成简单的表结构
- 权限控制:可以只暴露视图中的部分字段,而不开放基表全部数据
- 逻辑解耦:当基表结构变更时,只需调整视图定义而不必修改应用代码
上周我们电商系统需要开发供应商对账功能,涉及订单表、商品表、供应商表、结算表四表关联。通过创建视图,前端同事可以直接像操作单表那样获取对账数据,开发效率提升了60%。下面分享具体的实现方法。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 多表视图创建基础
2.1 准备工作
假设我们有以下简化的电商数据库结构:
sql复制CREATE TABLE suppliers (
supplier_id INT PRIMARY KEY,
supplier_name VARCHAR(100),
contact_phone VARCHAR(20)
);
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100),
supplier_id INT,
price DECIMAL(10,2),
FOREIGN KEY (supplier_id) REFERENCES suppliers(supplier_id)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
product_id INT,
quantity INT,
order_date DATE,
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
2.2 基本视图创建语法
创建视图的标准SQL语法如下:
sql复制CREATE VIEW view_name AS
SELECT column
