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

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

视图

视图也是数据库对象之一

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

目录
相关文章
|
11天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
36 3
|
17天前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
40 0
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
171 0
|
10天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
84 57
|
24天前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
27天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:实现过程与关键细节解析an3.021-6232.com
随着互联网技术的快速发展,ASP.NET作为一种广泛使用的服务器端开发技术,其与数据库的交互操作成为了应用开发中的重要环节。本文将详细介绍在ASP.NET中如何连接SQL数据库,包括连接的基本概念、实现步骤、关键代码示例以及常见问题的解决方案。由于篇幅限制,本文不能保证达到完整的2000字,但会确保
|
1月前
|
前端开发 JavaScript Java
【SpringBoot系列】视图解析器的搭建与开发
【SpringBoot系列】视图解析器的搭建与开发
22 0
|
24天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
57 3
Mysql(4)—数据库索引
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
46 2
|
13天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
54 4

热门文章

最新文章

推荐镜像

更多