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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 数据库视图的超详细解析📖

视图

视图也是数据库对象之一

所有数据库对象名字不可重复,以“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

目录
相关文章
|
10天前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
20 2
|
13天前
|
存储 关系型数据库 数据库
数据库技术深度解析与未来趋势展望
数据库,简而言之,就是存储数据的仓库。它可以按照一定的规则存储和管理数据,提供数据的增删改查(CRUD)等基本操作。数据库不仅限于存储功能,还具备数据的共享性、持久性和安全性等特点。通过数据库管理系统(DBMS),用户可以方便地对数据进行管理和访问。
42 3
|
27天前
|
缓存 监控 NoSQL
深入解析数据库性能优化:策略与实践
【7月更文挑战第23天】数据库性能优化是一个复杂而持续的过程,涉及硬件、软件、架构、管理等多个方面。通过本文的介绍,希望能够为读者提供一个全面的性能优化框架,帮助大家在实际工作中更有效地提升数据库性能。记住,优化不是一蹴而就的,需要持续的观察、分析和调整。
|
4天前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
11 0
|
1月前
|
SQL 安全 数据库
Ruby on Rails 数据库迁移操作深度解析
【7月更文挑战第19天】Rails 的数据库迁移功能是一个强大的工具,它帮助开发者以版本控制的方式管理数据库结构的变更。通过遵循最佳实践,并合理利用 Rails 提供的迁移命令和方法,我们可以更加高效、安全地管理数据库结构,确保应用的稳定性和可扩展性。
|
10天前
|
运维 关系型数据库 MySQL
"MySQL运维精髓:深入解析数据库及表的高效创建、管理、优化与备份恢复策略"
【8月更文挑战第9天】MySQL是最流行的开源数据库之一,其运维对数据安全与性能至关重要。本文通过最佳实践介绍数据库及表的创建、管理与优化,包括示例代码。涵盖创建/删除数据库、表结构定义/调整、索引优化和查询分析,以及数据备份与恢复等关键操作,助您高效管理MySQL,确保数据完整性和系统稳定运行。
24 0
|
10天前
|
安全 关系型数据库 MySQL
"深度解析:MySQL密码修改与远程登录配置全攻略,保障数据库安全与灵活访问"
【8月更文挑战第9天】MySQL是广受青睐的开源关系型数据库系统,其安全性和易用性对DBA和开发者至关重要。本文通过实例解析MySQL中用户密码更新及远程登录配置,确保数据库安全访问与高效管理。首先介绍如何分步修改密码,包括登录MySQL、选择数据库、使用`ALTER USER`命令更新密码,并刷新权限。接着,指导如何配置远程访问,涉及调整MySQL监听地址、授权用户远程登录、检查网络设置及测试远程连接。遵循这些步骤,可强化数据库安全性并实现灵活管理。
45 0
|
5天前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
18 0
|
5天前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
7天前
|
Oracle 关系型数据库 MySQL
Mysql和Oracle数据库死锁查看以及解决
【8月更文挑战第11天】本文介绍了解决MySQL与Oracle数据库死锁的方法。MySQL可通过`SHOW ENGINE INNODB STATUS`查看死锁详情,并自动回滚一个事务解除死锁;也可手动KILL事务。Oracle则通过查询V$LOCK与V$SESSION视图定位死锁,并用`ALTER SYSTEM KILL SESSION`命令终止相关会话。预防措施包括遵循ACID原则、优化索引及拆分大型事务。

热门文章

最新文章

推荐镜像

更多