数据库视图的超详细解析📖

简介: 数据库视图的超详细解析📖

视图

视图也是数据库对象之一

所有数据库对象名字不可重复,以“v_”开头的视图名相对来说更规范。

视图在是SQL语句中体现的角色与表相同,但是视图并不是一张真实存在的表,而只是对应一个select 语句的查询结果集,并将其当做表看待而已。

使用视图的目的是为了简化SQL语句的复杂度,重用子查询,限制数据访问。

创建视图

create view v_k_depino
as 
select kname,depino,sal
from k
desc v_k_depino

查看视图数据

select *from v_k_depino
select *from (select kname,depino,sal from k)

视图对应的子查询中的字段若有函数或者表达式,那么该字段必须使用别名。

当视图对应的子查询中的字段使用了别名,那么视图中该字段就用别名来命名。

修改视图

由于视图仅仅对应一个select语句,所以修改视图就是替换该select语句而已。

create or replace view v_k_depino
as
select kname name,depino,sal s
from k

视图分类

视图分为简单视图和复杂视图

简单视图

简单视图:对应的子查询中不含有关联查询,查询字段不包含函数,表达式等,没有分组没有去重,反之,则是复杂视图。

对视图进行DML操作。

仅能对简单视图进行DML操作,对视图进行DML操作就是对视图数据来源的基础表进行操作。

插入数据

insert into v_k_depino(name,s,depino) values('d',2300,30)
select *from v_k_depino
select * from k

更改数据

update v_k_depino set s=1800 where name='cc' 
select * from k

删除数据

delete from v_k_depino where name='cc'

对数据的DML操作就是对基表操作,那么操作不当可能对基表进行数据污染。

只有删除操作删除不了视图中没有或者看不见的数据,但是可以删除视图中存在或可见的数据,但是在视图中进行了更新,插入操作,即使这是视图中的不可见的数据,操作也能进行,这就对基表产生了污染。

with check option

为视图添加检查选项,可以保证对视图的DML操作后视图对其可见,否则不允许进行DML操作,这样就可以避免数据污染。

create view v_k_depino
as 
select kname,depino,sal
from k
where depino=20
with check option

为视图添加只读选项,不允许该视图进行DML 操作。在SQL语句后加上

with read only,代表只读,不允许操作 。

数据字典

select object_name from user_objects
//objects,查出所有数据库对象

select text,view_name from user_views//查视图名,text显示当时写入的SQL语句
select table_name from user_tables //查数据库名

复杂视图

复杂视图

create view v_k
as 
select h.loc,k.kname,min(sal) msal,sum(sal) ssal
from k,h
where k.depino=h.depino
group by h.loc,k.kname

删除视图

删除视图本身不影响基表,但是删除数据,会影响基表本身,会删除基表对应的数据。

drop view v_k

目录
相关文章
|
2月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
481 0
|
5月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
129 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
4月前
|
存储 关系型数据库 数据库
高性能云盘:一文解析RDS数据库存储架构升级
性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。
|
11月前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
11月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
201 3
|
11月前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
397 57
|
10月前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
1491 5
|
11月前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
11月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
7月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
676 29

热门文章

最新文章

推荐镜像

更多
  • DNS