1.概念
2、视图的基本使用
2.1 创建视图(基本语法)
2.2.查看视图-语句和表一样
3.修改视图
4.删除视图
5.重命名视图
6.修改视图内容
7.视图的优点
1.概念
视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图(insert update delete )。 创建视图需要create view 权限,并且对于查询涉及的列有select权限;使用alter修改视图,那么还需要改视图的drop权限。
2、视图的基本使用
2.1 创建视图(基本语法)
语法:create view 视图名 as 查询语句;
2.2示例
1)
CREATE VIEW cust_view AS
SELECT h.HYContractNo,h.hycontracttype,c.`Name`
FROM jhycontract h LEFT JOIN jcustomer c ON h.CustomerANo = c.CustomerNo
2)在连接工具可以看到创建的视图
3)打开视图查看,发现和一张真正的表差不多
2.2.查看视图-语句和表一样
1)查看视图
SHOW TABLES LIKE '%view%'
2)查看视图信息
DESCRIBE cust_view
3)查看视图创建信息
SHOW create view cust_view
Create View里面是详细的创建信息
3.修改视图
语法:
1)alter view 视图名 as select 语句
2)alter view 视图名 as select 视图;
示例:
alter VIEW cust_view AS SELECT h.HYContractNo,h.hycontracttype,c.`Name` FROM jhycontract h LEFT JOIN jcustomer c ON h.CustomerANo = c.CustomerNo WHERE CustomerANo IS NOT NULL
ALTER VIEW cust_view2 AS SELECT * FROM cust_view WHERE NAME LIKE '%李%'
4.删除视图
语法:drop view 视图名,视图名....;
drop view cust_view
5.重命名视图
语法:rename table 视图名 to 新视图名;
RENAME table cust_view2 to cust_view
6.修改视图内容
对视图内容进行修改会影响基表,对基表内容进行修改也会影响视图
视图是一个虚拟表,实际的数据来自于基本表,所以通过插入、修改和删除操作更新视图中的数据,实质上是在更新视图所引用的基本表的数据。
注意:对视图的修改就是对基本表的修改,因此在修改时,要满足基本表的数据定义。
某些视图是可更新的。也就是说,可以使用 UPDATE、DELETE 或 INSERT 等语句更新基本表的内容。对于可更新的视图,视图中的行和基本表的行之间必须具有一对一的关系。
还有一些特定的其他结构,这些结构会使得视图不可更新。更具体地讲,如果视图包含以下结构中的任何一种,它就是不可更新的:
聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
DISTINCT 关键字。
GROUP BY 子句。
HAVING 子句。
UNION 或 UNION ALL 运算符。
位于选择列表中的子查询。
FROM 子句中的不可更新视图或包含多个表。
WHERE 子句中的子查询,引用 FROM 子句中的表。
ALGORITHM 选项为 TEMPTABLE(使用临时表总会使视图成为不可更新的)的时候。
7.视图的优点
1)数据安全性
对于表中存在很重要的几个列的信息,某些信息需要保密,不能随便给别人看。这样子,可以创建一个视图,只保留可以看的信息。给看视图,不给看基表,这样子,其他人来查看视图就只能看到开放的数据
2)灵活
视图可以灵活的映射到多张表的数据。对数据结构进行重构。
3)复用性
提高了重用性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?