|NO.Z.00062|——————————|BigDataEnd|——|Java&MySQL索引/存储过程/触发器.V03|——|MySQL.v03|视图介绍创建|
一、什么是视图
### --- 什么是视图
——> 1. 视图是一种虚拟表。
——> 2. 视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。
——> 3. 向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句.
——> 4. 视图向用户提供基表数据的另一种表现形式
### --- 视图的作用
——> 权限控制时可以使用
——> 比如,某几个列可以运行用户查询,其他列不允许,可以开通视图 查询特定的列, 起到权限控制的作用
### --- 简化复杂的多表查询
——> 视图 本身就是一条查询SQL,我们可以将一次复杂的查询 构建成一张视图, 用户只要查询视图就可以获取想要得到的信息(不需要再编写复杂的SQL)
——> 视图主要就是为了简化多表的查询
二、视图的使用
### --- 创建视图
——> 语法格式
create view 视图名 [column_list] as select语句;
view: 表示视图
column_list: 可选参数,表示属性清单,指定视图中各个属性的名称,默认情况下,与SELECT语句中查询的属性相同
as : 表示视图要执行的操作
select语句: 向视图提供数据内容
### --- 创建一张视图
~~~ # 先编写查询语句
~~~ 查询所有商品 和 商品的对应分类信息
SELECT * FROM products p LEFT JOIN category c ON p.`category_id` = c.`cid`;
~~~ # 基于上面的查询语句,创建一张视图
CREATE VIEW products_category_view
AS SELECT * FROM products p LEFT JOIN category c ON p.`category_id` = c.`cid`;

### --- 查询视图 ,当做一张只读的表操作就可以
SELECT * FROM products_category_view;

三、sql语句
### --- sql语句
/*
什么是视图
视图是由查询结果形成的一张虚拟的表.
视图的作用
如果某个查询的结果出现的十分频繁,并且查询语法比较复杂.
那么这个时候,就可以根据这条查询语句构建一张视图 方便查询
视图的语法
create view 视图名[字段列表] as select 查询语句;
view 表示视图
字段列表 一般跟后面的查询语句 相同
as select 查询语句 表示给视图提供数据的 查询语句
*/
-- 创建视图
-- 1.查询所有商品和商品对应分类的信息
SELECT * FROM products p LEFT JOIN category c ON p.`category_id` = c.`cid`;
-- 2.根据上面的查询语句 构建一张视图
CREATE VIEW products_category_view AS
SELECT * FROM products p LEFT JOIN category c ON p.`category_id` = c.`cid`;
-- 操作视图 就相当于操作一张 只读表
SELECT * FROM products_category_view;
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv005-mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南