当前位置: 首页 > news >正文

深入解析:数据库视图:虚拟表的强大应用

在数据库的世界里,视图是一个非常重要的概念,它就像一个 “虚拟的表”,能帮助我们更灵活、安全地处理数据。假设你对视图还一知半解,或者想系统梳理视图的相关知识,那么这篇文章会很适合你。接下来,我将结合数据库学习中的核心内容,从视图的概念、创建、查询、更新、修改定义到删除,全方位为你讲解数据库视图。

“真实表”,却很有用就是一、认识视图:它不

先,大家得明确视图到底是什么。视图是一个虚拟表,它由存储的查询构成,输出看起来和真实的表一样,有带名称的列和行信息。但关键区别在于,视图并不在数据库中存储资料值,它的信息都来自定义视图时查询语句所引用的表(这些表被称为基表)。数据库只在数据字典里存储视图的定义信息。

基表中的数据;反过来,基表数据发生变化,也会反映到由它组成的视图里。就是而且,视图的建立来源很灵活:既可以建立在关系表上,也能建立在其他视图上,甚至可以同时基于两者。它的 “伪装性” 很强,看上去和数据库里的表没什么差别,我们甚至能在视图中进行 INSERT、UPDATE 和 DELETE 操作。不过要注意,通过视图修改数据时,实际上修改的

二、创建视图:两种常见方式

想要使用视图,第一步就是创建它。这里有两种常用的创建方式,分别适用于不同的操作习惯。

(一)用SQL Developer创建

如果你习惯图形化执行,SQL Developer 是个不错的选择。具体步骤很简单:

  1. 打开 SQL Developer,在创建视图的界面中,选择方案(比如常用的 SCOTT 方案);
  2. 给视图起个名字,比如 “stu_view1”;
  3. 在 SQL 查询区域编写定义视图的查询语句,例如 “SELECT * FROM stu WHERE zy=' 计算机 '”;
  4. 可以点击 “测试语法” 检查语句是否正确,没问题的话点击 “确定”,视图就创建完成了。

(二)用CREATE VIEW语句创建

如果更偏爱用 SQL 命令,那么 CREATE VIEW 语句就是你的工具。它的语法结构如下:

其中,“or replace” 表示如果视图已经存在,就用新的定义替换它;“view_name” 是视图的名字;“alias” 是为视图的列指定的别名;“subquery” 是定义视图的查询语句;“with check option” 用于限制通过视图修改数据时,必须满足查询语句中的条件;“with read only” 则指定视图为只读,不能通过它修改数据。

三、查询视图:和查普通表一样简单

创建好视图后,查询管理就特别轻松了。我们可以像查询普通数据表那样,运用 SELECT 语句查询视图的信息。

比如在 SCOTT 模式下,要查询名为 “emp_view” 的视图,只需要执行以下 SQL 语句:

四、示例

(一)示例1

题目如下图,首先要创建Transactions表,然后插入信息,再创建视图,最后查询视图

1、创建Transactions表

创建表的方法有两种,这里用编译器来创建,在 Navicat 中,打开 Oracle 数据库的查询编辑器,执行以下建表语句:

2、插入示例数据

继续在查询编译器中,执行插入数据的语句:

3、创建视图

创建查询视图的办法有两种,这里以上面提到的“CREATE VIEW”为例,继续在查询编译器中,执行以下语句:

4、查询视图

创建视图后,直接执行以下查询语句查看结果:

到这里,该示例就已经完成了。

(二)示例2

题目如下图,首先要创建Accounts表,然后插入数据,再创建视图,结果查询视图

1、创建Accounts表

在 Navicat 中,打开 Oracle 数据库的查询编辑器,执行以下建表语句:

定义了表的两个列,account_id 为主键,确保其唯一性

2、插入示例数据

继续在查询编译器中,执行插入数据的语句:

3、新建视图并且查询

继续在查询编译器中,执行插入数据的语句:

输出了想得到的结果,到这里,示例展示结束。

五、更新视图:有条件,需注意

所有视图都能更新,可更新视图需要满足一系列条件:就是并不

  1. 没有使用连接函数、聚合函数和组函数;
  2. 创建视图的 SELECT 语句中没有聚合函数,也没有 GROUP BY、CONNECT BY、START WITH 子句以及 DISTINCT 关键字;
  3. 创建视图的 SELECT 语句不包括从基表列通过计算得到的列;
  4. 创建视图时没有设置只读属性。

如果视图满足这些条件,我们就可以运用 UPDATE 语句通过视图修改基表的数据。举个例子,要将 “emp_view_complex” 视图中员工编号为 7566 的员工工资改为 3000,执行相应的 UPDATE 语句即可(具体语句需结合视图实际定义编写)。

六、修改视图定义:两种方法任你选

当业务需求变化,需要修改视图的定义时,也有两种常用方法。

(一)用 SQL Developer 修改

  1. 在 SQL Developer 中找到要修改的视图(比如 “EMP_VIEW”),进入编辑视图界面;
  2. 在 SQL 查询区域修改查询语句,比如原本视图查询的是部门编号为 20 的记录,现在行改成 “select empno, ename, job, sal, deptno from emp where deptno =30”;
  3. 点击 “测试语法” 检查修改后的语句是否正确,确认无误后点击 “确定”,视图定义就修改好了。

(二)用 SQL 命令修改

使用 CREATE OR REPLACE VIEW 语句可以修改视图定义,相当于用新的查询语句重新创建视图(如果视图已存在则替换)。

比如要修改 “emp_view_union” 视图,让它查询部门编号为 30 的记录(原本查询部门编号为 20 的记录),可以执行以下语句:

七、删除视图:不用了就及时清理

,用户只能直接删除自己模式中的视图;假如要删除其他用户模式中的视图,必须拥有 DROP ANY VIEW 系统权限。就是当视图不再需时,我们允许执行 DROP VIEW 语句删除它。需要注意的

比如要删除 “emp_view” 视图,只需执行:

通过删除视图后,数据库中就不再存储该视图的定义信息了,但不会影响到它所基于的基表素材,这一点能够放心。

总结

视图作为数据库中的 “虚拟表”,在数据处理中发挥着重要作用。从理解它的概念,到掌握创建、查询、更新、修改和删除的技巧,每一步都很关键。希望通过这篇文章,你能对数据库视图有更清晰的认识,并且在实际工作或学习中灵活运用视图,让数据处理变得更高效、更安全。

http://www.hskmm.com/?act=detail&tid=29583

相关文章:

  • agc001_c题解
  • 【IMU】6轴数据校准算法
  • 2025 年 MES 服务商 TOP 平台机构推荐排行榜,mes 系统 /mes 软件 /mes 制造执行系统 /mes 生产制造执行系统 /mes 生产管理系统公司推荐
  • 2025 年10月 WMS 服务商最新推荐榜单,wms系统 wms软件,wms仓库管理软件,wms仓库管理系统软件公司推荐
  • 【仿生机器人】核心采购清单 (仿生机器人头方案)
  • CF数据结构题做题记录-1
  • 完整教程:安宝特产品丨FME Realize:重构数据与现实的边界,让空间计算赋能现场决策
  • 尝试对音频功率放大器芯片的噪声基底特性进行测量与计算:以纳芯威NS4268为例
  • 3.1 策略梯度方法(Policy Gradient Methods)
  • perl语言中的三目运算符和do代码块
  • CCPC2023女生专场 游记(VP)
  • 2.5 分布式学习(Distributed Learning)
  • 心得:刷算法的痛点-只根据题目的case思考,不考虑边界情况,写出一坨shit
  • OI 数论 1
  • 2.4 DQN 变体(Rainbow)
  • Emacs折腾日记(三十二)——org mode的基本美化
  • 2025 工业风机十大品牌全景解析报告:覆盖离心风机,防爆风机,矿用风机的最新推荐
  • 2.3 深度 Q 网络(Deep Q-Network, DQN)
  • Linux存储媒介devmount
  • Linux系统目录(文件)结构
  • 实用指南:如何读懂Mach-O:构建macOS和iOS应用安全的第一道认知防线
  • vim配置使用
  • shell高级
  • shell流程控制
  • shell展开shell数组
  • shell排错
  • 原木
  • 格式化输出与文本处理
  • 2025年10月镀锌卷板厂家最新推荐排行榜,有花镀锌卷板,无花镀锌卷板,高锌层镀锌卷板,批发镀锌卷板公司推荐
  • React 19.2 重磅更新!这几个新特性终于来了