《Oracle高级数据库》期末复习一文总结

news/2024/10/30 13:35:08/

文章目录

  • 第一章:数据库基础
    • 1.数据库系统
      • 数据库
      • 数据库管理系统
      • 数据库系统
    • 2.数据模型
      • 层次模型
      • 网状模型
      • 关系模型
    • 3.关系型数据库
      • (1)数据定义语言(DDL)
      • (2)数据操纵语言(DML)
      • (3)数据控制语言(DCL)
      • (4)数据查询语言(DQL)
    • 3.数据库设计
      • 概念数据模型
    • 逻辑数据模型
        • 1.(1∶1)联系的E-R图到关系模式的转换
      • 2.(1∶n)联系的E-R图到关系模式的转换
      • 3.(m∶n)联系的E-R图到关系模式的转换
    • 物理数据模型
  • 第二章:数据库介绍
    • Oracle 19C的服务
    • 账户和权限
    • 卸载
    • Sql plus的常用命令
      • 1、**连接命令** **connect**
    • 数据库基本结构
      • 内部结构
        • 1.表空间(TABLESPACE)
        • 2.表(TABLE)
        • 3.约束条件(CONSTRAINT)
        • 4.分区(PARTITION)
        • 5.索引(INDEX)
        • 6.用户(USER)
        • 7.方案(SCHEMA)
        • 8.同义词
        • 9.权限及角色(ROLE)
        • 10.段(SEGMENT)、盘区(EXTENT)和数据块(DATA BLOCK)
      • 外部结构
        • 1.数据文件(DATAFILE)
        • 2.重做日志文件(REDO LOG FILES)
        • 3.控制文件(CONTROL FILES)
      • 数据库实例
        • 1.系统全局区
        • 2.后台进程
  • 第三章:数据表创建和操作
    • 1.表操作
      • 表概念:
      • 数据类型
        • 字符类型
        • 数字类型
        • 时间类型
        • 大字段类型
    • 2.关系的性质
    • 3.创建表
    • 4.修改表
    • 5.删除表
    • 6.操作表数据
      • 插入记录
      • 修改记录
      • 删除记录
      • 小结
  • 第四章:数据库查询和视图
    • 数据库查询
      • 选择列
      • 统计函数
      • 运算符
      • 选择行
      • 分组查询
      • having语句
      • 排序
      • 补充(数据字典)
        • 常用数据字典
          • 表1--Oracle数据字典的主要视图类型 (部分)
            • Oracle中与数据库相关的数据字典(部分)
      • 查询数据字典—了解相关的系统和数据库信息
      • 总结
      • 习题练习(1)
    • 数据库查询
    • 多表连接
    • 等值连接举例
    • 自然连接举例
    • 交叉连接
    • 内连接
      • 内连接和条件连接用法比较
      • 内连接举例
    • 自连接
      • 自连接举例
    • 子查询
      • 1.带比较运算符的子查询
      • 2.带比较运算符的子查询
      • IN子查询
      • 子查询举例
    • exists子查询
      • 子查询为“查询对象(数据源)”的构成形式
    • 进一步比较ALL与ANY用法
    • union语句
    • 总结
    • 数据库视图
      • 视图概念
      • 创建视图
      • 查询视图
      • 更新视图
      • 修改视图定义
      • 删除视图
      • 含替换变量的查询
        • define和accept命令
  • 第五章:索引与数据完整性
    • 索引
    • 创建索引
    • 创建索引举例
    • 维护索引
    • 删除索引
    • 数据完整性
      • 数据完整性分类
    • 域完整性实现
    • 实体完整性实现
    • 参照完整性实现
    • 总结修改表时增加约束命令格式
  • 第六章:PL/SQL语言
    • PL/SQL概述
    • PL/SQL组成
    • PL/SQL语言
    • PL/SQL开发和运行环境
    • PL/SQL字符集
      • 运算符
      • 其他符号
    • PL/SQL变量\常量和数据类型
      • 变量
      • 常量
      • 常用数据类型
    • PL/SQL基本程序语句和结构
      • PL/SQL程序块
      • 条件结构
      • 条件结构
    • 循环结构
    • 选择和跳转语句
    • 系统内置函数
      • 内置函数举例
    • 用户定义函数(重)
      • 用户定义函数的创建与调用
      • 用户定义函数应用举例
    • 游标
      • 游标使用的系统变量
      • 显式游标
      • 显示游标--举例
      • 隐式游标
      • 游标与while循环的综合应用
      • 游标FOR循环
    • 异常
      • 条件编程+异常处理应用
  • 第七章: 存储过程和触发器
    • 存储过程
      • 存储过程创建
        • 调用存储过程
      • 存储过程创建
        • 存储过程调用--应用举例
        • 创建存储过程--应用举例
        • 存储过程的调用--应用举例
        • 创建存储过程--应用举例
      • 存储过程修改
      • 存储过程删除
    • 触发器
      • 以命令方式创建触发器
      • 利用SQL语句创建触发器
      • 以命令方式创建触发器
        • 创建替代触发器--应用举例
        • 测试
      • 以命令方式创建触发器
        • DDL触发器--应用举例
        • 以界面方式创建触发器
      • 启用和禁用触发器
      • 删除触发器
  • 第九章:导入/导出
    • 数据库备份类型
    • 导入/导出三种模式:
      • • 交互模式:
      • • 命令行模式:
      • • 参数文件模式
      • .SQLDeveloper方式
      • 以命令方式创建触发器
        • DDL触发器--应用举例
        • 以界面方式创建触发器
      • 启用和禁用触发器
      • 删除触发器
  • 第九章:导入/导出
    • 数据库备份类型
    • 导入/导出三种模式:
      • • 交互模式:
      • • 命令行模式:
      • • 参数文件模式
      • .SQLDeveloper方式

第一章:数据库基础

1.数据库系统

数据库

数据库(DB)是存放数据的仓库,而且这些数据存在一定的关联,并按一定的格式存放在计算机内、可共享。

数据库管理系统

数据库管理系统(DBMS)按一定的数据模型组织数据形成数据库,并对数据库进行管理。

即,DBMS就是管理数据库的系统(软件)。数据库系统管理员(DataBase Administrator,DBA)通过DBMS对数据库进行管理。目前,比较流行的DBMS有:Oracle、SQL Server、MySQL等。

数据库系统

数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。如图1.1所示描述了数据库系统的构成

image-20221031201343628

2.数据模型

层次模型

层次模型将数据组织成一对多关系的结构,采用关键字来访问其中每一层次的每一部分。它存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便。但结构不够灵活;同一属性数据要存储多次,数据冗余大;不适合于拓扑空间数据的组织。

网状模型

网状模型具有多对多类型的数据组织方式。它能明确而方便地表示数据间的复杂关系;数据冗余小。但网状结构的复杂增加了用户查询和定位的困难;需要存储数据间联系的指针,使得数据量增大;数据的修改不方便。

关系模型

关系模型以记录组或二维数据表的形式组织数据,以便于利用各种实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。它的结构特别灵活,概念单一,满足所有布尔逻辑运算和数学运算规则形成的查询要求;能搜索、组合和比较不同类型的数据;增加和删除数据非常方便;具有更高的数据独立性、更好的安全保密性。但数据库大时,查找满足特定关系的数据费时;而且无法表达空间关系。

3.关系型数据库

(1)数据定义语言(DDL)

image-20221031202212743

(2)数据操纵语言(DML)

image-20221031202229345

(3)数据控制语言(DCL)

image-20221031202319024

(4)数据查询语言(DQL)

主要通过SELECT语言实现各种查询功能。

3.数据库设计

概念数据模型

概念数据模型用于信息世界的建模:一方面,应该具有较强的语义表达能力,能够方便直接表达应用中的各种语义知识;另一方面,它还应该简单、清晰、易于用户理解。
在概念数据模型中最常用的是E-R模型、通常E-R模型把每一类数据对象的个体称为“实体”,
而每一类对象个体的集合称为“实体集”,
把每个实体集涉及的信息项称为属性。
实体集中的实体彼此是可区别的。如果实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。码可能有多个,对于每一个实体集,可指定一个码为主码。
个实体集A和B之间的联系可能是以下三种情况之一。
1.一对一的联系(1∶1)
2.一对多的联系(1∶n)
3.多对多的联系(m∶n)

逻辑数据模型

1.(1∶1)联系的E-R图到关系模式的转换

对于(1∶1)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。

2.(1∶n)联系的E-R图到关系模式的转换

对于(1∶n)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。

3.(m∶n)联系的E-R图到关系模式的转换

对于(mn)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。

物理数据模型

物理数据模型(Physical Data Model)是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。

第二章:数据库介绍

Oracle 19C的服务

image-20221031202655267

账户和权限

image-20221031202714466

卸载

image-20221031202737529

Sql plus的常用命令

1、连接命令 connect

image-20221031202939268

数据库基本结构

内部结构

image-20221031203004438

1.表空间(TABLESPACE)

  • 表空间是数据库的逻辑划分,
  • 一个表空间只属于一个数据库。
  • 每个表空间由一个或多个数据文件组成,
  • 表空间中其他逻辑结构的数据存储在这些数据文件中。
  • 一般Oracle系统完成安装后,会自动建立多个表空间

image-20221031203133298

2.表(TABLE)

表是数据库中存放用户数据的对象。它包含一组固定的列。表中的列描述该表所跟踪的实体的属性,每个列都有一个名字和若干个属性。表结构的一个样例如图所示。

image-20221031203156900

3.约束条件(CONSTRAINT)

可以为一个表列创建约束条件。此时,表中的每一行都必须满足约束条件定义所规定的条件。约束条件有以下5种。

image-20221031203223908

4.分区(PARTITION)

在非常大的数据库中,可以通过把一个大表的数据分成多个小表来简化数据库的管理,这些小表称为分区。除了对表分区外,还可以对索引进行分区。分区不仅简化了数据库的管理还改善了其应用性能。在Oracle中,能够细分分区,创建子分区。例如,可以根据一组值分割一个表,然后再根据另一种分割方法分割分区。

5.索引(INDEX)

在关系数据库表中,一个行数据的物理位置无关紧要。为了能够找到数据,表中的每一行都用一个RowID来标识。RowID告诉数据库这一行的准确位置,包括所在的文件、该文件中的块和该块中行地址。
索引是帮助用户在表中快速地找到记录的数据库结构。它既可以提高数据库性能,又能够保证列值的唯一性。当CREATE TABLE命令中规定有UNIQUE或PRIMARY KEY约束条件子句时,Oracle就会自动创建一个索引。也可以通过CREATE INDEX命令来手工创建自己的索引。

6.用户(USER)

用户账号虽然不是数据库中的一个物理结构,但它与数据库中的对象有着重要的关系,这是因为用户拥有数据库的对象。例如,用户SYS拥有数据字典表,这些表中存储了数据库中其他对象的所有信息;用户SYSTEM拥有访问数据字典表的视图,这些视图供数据库其他用户使用。
为数据库创建对象(例如表)必须在用户账户下进行。可以对每一个用户账户进行自定义,以便将一个特定的表空间作为它的默认表空间。

7.方案(SCHEMA)

用户账户拥有的对象集称为用户的方案(SCHEMA)。可以创建不能注册到数据库的用户账户。这样的用户账户提供一种方案,这种方案可以用来保存一组其他用户方案分开的数据库对象。

8.同义词

为了给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称,可以为数据库对象创建同义词。同义词有公用同义词和私有同义词两种。

9.权限及角色(ROLE)

为了访问其他账户所有的对象,必须首先被授予访问这个对象的权限。权限可以授予给某个用户或PUBLIC,PUBLIC把权限授予数据库中的全体用户。
可以创建角色即权限组来简化权限的管理。可以把一些权限授予一个角色,而这个角色又可以被授予多个用户。在应用程序中,角色可以被动态地启用或禁用。

10.段(SEGMENT)、盘区(EXTENT)和数据块(DATA BLOCK)

依照不同的数据处理性质,可能需要在数据表空间内划分出不同区域,以存放不同数据,将这些区域称为“段”(SEGMENT)。例如,存放数据的区域称为“数据区段”、存放索引的区域称为“索引区段”。
由于段是一个物理实体,所以必须把它分配到数据库中的一个表空间中(放在表空间的一个数据文件中)。而段其实就是由许多盘区组合而成的。当段中的空间用完时,该段就获取另外的盘区。
数据块是最小的储存单元,

image-20221031203511741

外部结构

1.数据文件(DATAFILE)

每一个Oracle数据库都有一个或多个数据文件,而一个数据文件只能属于一个表空间。
数据文件创建后可改变大小,
创建新的表空间需要创建新的数据文件。
数据文件一旦加入到表空间,就不能从这个表空间中移走,也不能和其他表空间发生联系。
如果数据库对象存储在多个表空间中,可以通过把它们各自的数据文件存放在不同的磁盘上来对其进行物理分割。数据库、表空间和数据文件之间的关系如图所示。

image-20221031203553287

2.重做日志文件(REDO LOG FILES)

除了数据文件外,最重要的Oracle数据库实体档案就是重做日志文件(Redo Log Files)。Oracle保存所有数据库事务的日志。这些事务被记录在联机重做日志文件(Online Redo Log File)中。当数据库中的数据遭到破坏时,可以用这些日志来恢复数据库。
一个数据库至少需要两个重做日志文件。Oracle以循环方式向重做日志文件写入。第一个日志被填满后,就向第二个日志文件写入,然后依此类推。当所有日志文件都被写满时,就又回到第一个日志文件,用新事务的数据对其进行重写。

3.控制文件(CONTROL FILES)

image-20221031203638678

数据库实例

image-20221031203702083

1.系统全局区

当激活Oracle数据库时,系统会先在内存内规划一个固定区域,用来存储每位使用者所需存取的数据以及Oracle运作时必备的系统信息。这个区域就称为系统全局区(SGA)。

SGA又包含数个重要区域,分别是数据块缓存区(Data Block Buffer Cache)、字典缓存区(Dictionary Cache)、重做日志缓冲区(Redo Log Buffer)和SQL共享池(Shared SQL Pool)。图给出了SGA各重要区域之间的关系。

image-20221031203728725

(1)数据块缓存区。数据块缓存区为SGA的主要成员,用来存放读取数据文件的数据块副本,或是使用者曾经处理过的数据。其用途在于有效减少存取数据时造成的磁盘读/写动作,进而提升数据存取的效率。数据块缓存区的大小由初始化参数DB_BLOCK_BUFFERS决定。数据块缓存区的大小是固定的,它不可能一次装载所有的数据库的内容。通常,数据块缓存区大小只有数据库大小的1%~2%,Oracle使用最近最少使用算法(LRU)来管理可用空间。当存储区需要自由空间时,最近最少使用的块将被移出,释放的存储区空间被新调入的数据块占用。这种算法能够让最频繁使用的数据保留在存储区中。

(2)字典缓存区。数据库对象的信息存储在数据字典中,这些信息包括用户账户、数据文件名、盘区位置、表说明和权限等。当数据库需要这些信息(如要验证用户账户)时,就要读取数据字典,从中获得需要的信息数据,并且将这些数据存储在SGA的字典缓存区中。

字典缓存区也是通过LRU算法来管理的。字典缓存区的大小由数据库内部管理。字典缓存区是SQL共享池的一部分,SQL共享池的大小由SHARED_POOL_SIZE参数设置。

(3)重做日志缓冲区。前面已介绍过,联机重做日志文件用于记录数据库的更改,以便在数据库恢复过程中用于向前滚动。但这些修改并不是马上写入日志文件中的,在被写入联机重做日志文件之前,事务首先被记录在称为重做日志缓冲区的SGA中。数据库可以周期性地分批向联机重做日志文件中写入修改的内容,从而优化这个操作。

(4)SQL共享池。SQL共享池存储数据字典缓存区及库缓存区(Library Cache),即对数据库进行操作的语句信息。当使用者将SQL指令送至Oracle数据库后,系统将会先解析语法是否正确。解析时所需要的系统信息,以及解析后的结果将放置在共享区内。如果不同的使用者执行了相同的SQL指令,就可以共享已解析的结果,加速SQL指令的执行速度。SQL共享池的大小由参数SHARED_POOL_SIZE决定。

2.后台进程

数据库的物理结构和存储结构之间的关系是由后台进程来维持的。数据库拥有多个后台进程,其数量取决于数据库的配置。这些进程由数据库管理,它们只需要进行很少的管理。每个进程在数据库中执行不同的任务。图显示了后台进程在数据库外部结构、SGA中的作用和地位。下面介绍几个常用的后台进程。

image-20221031203804872

(1)DBWR(数据库写入进程)。负责将数据块缓存区内变动过的数据块回写至硬盘内的数据文件。Oracle系统预设激活一个DBWR处理程序,但在大型数据库系统下,数据库变动情况可能十分频繁,可依实际需求额外配置其他的DBWR。

(2)LGWR(日志写入进程)。负责将重做日志缓冲区内的数据变动记录循序写入重做日志文件。重做日志缓冲区条目总是包含着数据库的最新状态,因为DBWR进程可以一直等待到数据块缓冲区中的修改数据块写入到数据文件中。

(3)SMON(系统监控进程)。如果因为停电或其他因素导致Oracle数据库不正常关闭,下一次激活数据库时将由SMON进行必要的数据库修复动作。

(4)PMON(进程监控进程)。当某个处理程序异常终止时,PMON清除数据块缓存区内不再使用的空间,并释放该程序之前使用的系统资源。PMON也会定期检查各服务器处理程序以及分配器的状态,如果某个处理程序因故停摆,也是由PMON负责将它重新激活。

(5)CKPT(检查点进程)。检查点是指一个事件或指定的时间。在适当时候产生一个检查点时,CKPT确保缓冲区内经常变动的数据定期被写入数据文件。在检查点之后,因为所有更新过的数据已经回写至磁盘数据文件,万一需要进行实例恢复时,就不再需要检查点之前的重置记录,这样,可缩短数据库重新激活的时间。检查点发生后,CKPT会先通知DBWR将数据块缓存区的改动数据回写到数据文件,然后更新数据文件与控制文件的检查点信息。

(6)RECO(恢复进程)。该进程是在具有分布式选项时所使用的一个进程,用于自动解决在分布式事务中的故障。在Oracle 11g分布式数据库环境中,RECO进程会自动处理分布式操作失败时产生的问题。所谓分布式操作,简单地说,就是针对多个数据库同时进行数据处理动作。

(7)ARCH(归档进程)。LGWR后台进程以循环方式向重做日志文件写入。当Oracle以ARCHIVELOG模式运行时,数据库在开始重写重做日志文件之前先对其进行备份。可以将这些归档文件写入磁盘设备。这些归档功能由ARCH后台完成。

(8)LCKn(锁进程)。在Oracle并行服务器环境中,为了避免进程间在数据存取时发生冲突,在一个数据库实例访问一个数据库对象时,LCKn进程自动封锁它所访问的数据库对象,访问结束之后再解锁。

(9)Dnnn(调度进程)。调度进程允许用户共享有限的服务器进程,该进程接收用户进程的要求,并将它们放入请求队列中,然后为请求队列中的用户进程分配一个共享的服务器进程。一个数据库实例可以建立多个调度进程。

第三章:数据表创建和操作

1.表操作

表是Oracle系统中最主要的数据库对象,用来存储数据的一种逻辑结构, 由行和列组成,也称为二维表,每个数据库都包含若干个表。 关系数据库用表(关系)来表示实体及联系。

表概念:

image-20221031203948834

数据类型

image-20221031204010194

image-20221031204021648

字符类型

image-20221031204045579

数字类型

image-20221031204059889

时间类型

image-20221031204116456

大字段类型

image-20221031204132233

2.关系的性质

image-20221031204215306

3.创建表

image-20221031204259107

image-20221031204309777

4.修改表

image-20221031204329622

5.删除表

image-20221031204350081

6.操作表数据

插入记录

image-20221031204512363

image-20221031204525991

修改记录

image-20221031204543683

删除记录

image-20221031204608739

小结

image-20221111190647426

第四章:数据库查询和视图

数据库查询

image-20221031195214908

选择列

image-20221031195402592

统计函数

image-20221031195421175

运算符

image-20221031195539419

选择行

image-20221031195457624

分组查询

image-20221031195631373

image-20221031195642592

having语句

image-20221031200137650

image-20221031200146098

排序

image-20221031200202476

补充(数据字典)

image-20221031200249285

常用数据字典

表1–Oracle数据字典的主要视图类型 (部分)

image-20221031200335814

image-20221031200343452

Oracle中与数据库相关的数据字典(部分)

image-20221031200449437

查询数据字典—了解相关的系统和数据库信息

image-20221031200522174

image-20221031200539380

image-20221031200653336

总结

image-20221111190746343

习题练习(1)

1.查询xsb表中所有学生的学号、姓名两列。并用别名”studentid”和“sname”显示列名。

select 学号 as studentid , 姓名 as sname from XSB;

2.查询xsb表中总学分低于50分的所有记录。

select * from XSB where 总学分 < 50;

3.查询cjb表中选修了课程号为101或206的相关信息。(分别用IN关键字和逻辑运算符OR完成)

select * from CJB where 课程号 in (101,206);

select * from CJB where 课程号=101 or 课程号=206;

4.查询xsb表中所有姓”王”的学生信息。

select * from XSB where 姓名 like’王%';

5.查询kcb表中开课学期是5且学分为4的所有课程信息.

select * from KCB where 开课学期=5 and 学分=4;

6.查询cjb中课程号为101的这门课的最高分、最低分、平均分,并以相应的中文别名显示。

select max(成绩) as 最高分, min(成绩) as 最低分, avg(成绩) as 平均分 from CJB where 课程号=101

7.按性别统计xsb表中男女生人数。(用group by分组子句)

select 性别,count(姓名) from XSB group by 性别;

8统计cjb表中每门课的平均分。(用group by分组子句)

select 课程号,avg(成绩) from CJB group by 课程号;

9.统计cjb表中每个学生选修的所有课程的平均分。(用group by分组子句)

select 学号,avg(成绩) from CJB group by 学号;

10.查询选修课程超过两门且成绩都在80分以上的学生学号。(用group by分组子句)

select 学号 from CJB where 成绩>80 group by 学号 having COUNT(课程号)>2;

11.查询xsb表中的所有信息,并按“出生时间”列的降序排列

select * from XSB order by 出生时间 desc;

12.查询cjb表中的所有信息,并排序 ,先按“学号”列的升序排列,再按“成绩”列的降序排列。

select * from CJB order by 学号 asc;

select * from CJB order by 成绩 desc;

数据库查询

image-20221111190916249

多表连接

image-20221111190939498

image-20221111191106723

等值连接举例

image-20221111191006160

自然连接举例

image-20221111191030338

image-20221111191037432

交叉连接

image-20221111191124042

内连接

image-20221111191140352

内连接和条件连接用法比较

image-20221111191201199

内连接举例

image-20221111191223264

自连接

image-20221111191241601

自连接举例

image-20221111191828297

子查询

image-20221111191843697

1.带比较运算符的子查询

image-20221111191908816

2.带比较运算符的子查询

image-20221111191933552

IN子查询

image-20221111191956815

image-20221111192007663

子查询举例

image-20221111192117281

image-20221111192126398

exists子查询

image-20221111192151903

子查询为“查询对象(数据源)”的构成形式

image-20221111192225326

进一步比较ALL与ANY用法

image-20221111192041808

union语句

image-20221111192304646

image-20221111192311968

总结

image-20221111192328160

数据库视图

视图概念

image-20221111192430657

创建视图

image-20221111192445559

image-20221111192518419

image-20221111192629614

查询视图

image-20221111193220391

image-20221111193229288

更新视图

image-20221111193305728

image-20221111193327407

修改视图定义

image-20221111193356562

image-20221111193408694

删除视图

image-20221111193430944

含替换变量的查询

image-20221111193459569

image-20221111193519109

image-20221111193530223

image-20221111193542552

define和accept命令

image-20221111193611966

image-20221111193623983

第五章:索引与数据完整性

索引

image-20221111193740889

image-20221111193750485

创建索引

image-20221111193834805

image-20221111193843631

image-20221111193857615

image-20221111193913289

创建索引举例

image-20221111193933684

维护索引

image-20221111193958070

image-20221111194018921

删除索引

image-20221111194038519

数据完整性

image-20221111194100089

image-20221111194135289

数据完整性分类

image-20221111194156941

image-20221111194216999

域完整性实现

image-20221111194236975

image-20221111194248285

image-20221111194304941

实体完整性实现

image-20221111194323615

image-20221111194331775

image-20221111194340245

image-20221111194348373

image-20221111194401102

参照完整性实现

image-20221111194408976

image-20221111194423846

image-20221111194444935

image-20221111194500270

总结修改表时增加约束命令格式

image-20221111194636502

image-20221111194646533

第六章:PL/SQL语言

PL/SQL概述

image-20221118093848924

PL/SQL组成

image-20221118093930631

PL/SQL语言

image-20221118094010555

PL/SQL开发和运行环境

image-20221118094130923

PL/SQL字符集

image-20221118094152922

运算符

image-20221118094211940

其他符号

image-20221118094241796

PL/SQL变量\常量和数据类型

image-20221118110959919

变量

image-20221118111023730

常量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCPUseSK-1684845299772)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111043209.png)]

常用数据类型

image-20221118111105107

PL/SQL基本程序语句和结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pvc5lw1X-1684845299773)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111133877.png)]

PL/SQL程序块

image-20221118111255660

条件结构

image-20221118111326210

image-20221118111340657

条件结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qfTkhPfw-1684845299775)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111356226.png)]

image-20221118111407003

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ORmoOEWw-1684845299776)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111420185.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtJnJqqq-1684845299776)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111428973.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ocOlXsXt-1684845299777)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111528750.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jbcQ09h2-1684845299778)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221118111540359.png)]

循环结构

image-20221118111703779

image-20221118111715227

image-20221118111724852

image-20221118111735988

image-20221118111743926

image-20221118111751321

选择和跳转语句

image-20221118112036771

image-20221118112044322

image-20221118112051468

image-20221118112101005

系统内置函数

image-20221118112137884

image-20221118112151788

image-20221118112201205

image-20221118112209473

image-20221118112219043

内置函数举例

image-20221118112239104

image-20221118112248027

用户定义函数(重)

image-20221118113253394

用户定义函数的创建与调用

image-20221118113320028

image-20221118113447911

用户定义函数应用举例

image-20221118113515605

image-20221118113524264

image-20221118113552592

image-20221118113607510

游标

image-20221118114159239

image-20221118114208340

游标使用的系统变量

image-20221118114243273

显式游标

image-20221118114320260

image-20221118114332915

image-20221118114353114

image-20221118114407162

显示游标–举例

image-20221118114430013

隐式游标

image-20221118114449537

游标与while循环的综合应用

image-20221118114531707

游标FOR循环

image-20221118114550206

image-20221118114613557

异常

image-20221118114655838

image-20221118114706050

image-20221118114717253

image-20221118114727368

image-20221118114737727

image-20221118114747800

条件编程+异常处理应用

image-20221118114818704

第七章: 存储过程和触发器

存储过程

image-20221129185533331

存储过程创建

image-20221129190047856

调用存储过程

image-20221129190119312

存储过程创建

image-20221129190147015

image-20221129190155432

存储过程调用–应用举例

image-20221129190215681

创建存储过程–应用举例

image-20221129190240105

存储过程的调用–应用举例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y80omCE0-1684845299802)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190330727.png)]

创建存储过程–应用举例

image-20221129190351431

image-20221129190419996

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e4b8MFCw-1684845299804)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190426986.png)]

存储过程修改

image-20221129190532172

存储过程删除

image-20221129190550398

触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nGLicAKV-1684845299805)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190645751.png)]

以命令方式创建触发器

image-20221129190706298

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhQxuTHN-1684845299806)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190802375.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uG2bw9FU-1684845299806)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129190813735.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CIq7fYjO-1684845299806)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129194049191.png)]

利用SQL语句创建触发器

image-20221129194117740

以命令方式创建触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cKXXlqhp-1684845299807)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129194154127.png)]

创建替代触发器–应用举例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NGIAK6Nm-1684845299808)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129194228430.png)]

测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k0i17woW-1684845299809)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129195628241.png)]

以命令方式创建触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJF2zqu6-1684845299809)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129195707090.png)]

DDL触发器–应用举例

image-20221129195945438

以界面方式创建触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G0cjBSpr-1684845299810)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129200016132.png)]

启用和禁用触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EYyooyWv-1684845299810)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221129200046868.png)]

删除触发器

image-20221129200103189

第九章:导入/导出

数据库备份类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sDrRm08w-1684845299811)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194932826.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8u94TQcX-1684845299812)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194945406.png)]

导入/导出三种模式:

• 交互模式:

导出表:

输入Cmd,打开命令窗口,在提示符下输入exp命 令,按提示交互完成导出数据操作。

image-20221031194602324

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csQHFJ8q-1684845299813)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194620134.png)]

导入表:

输入Cmd,打开命令窗口,在提示符下输入imp命 令,按提示交互完成导入数据操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06cFkfC3-1684845299813)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194632901.png)]

• 命令行模式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pz8yvD3O-1684845299813)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194642937.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjVWHH50-1684845299814)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194656287.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GZbOOAl8-1684845299814)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194723031.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gRpwX6Mj-1684845299815)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194734128.png)]

• 参数文件模式

.SQLDeveloper方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KkYlXzI1-1684845299815)(https://huaizhihua.oss-cn-beijing.aliyuncs.com/img/image-20221031194850126.png)]

-1684845299809)]

以命令方式创建触发器

[外链图片转存中…(img-GJF2zqu6-1684845299809)]

DDL触发器–应用举例

[外链图片转存中…(img-taDl2T32-1684845299809)]

以界面方式创建触发器

[外链图片转存中…(img-G0cjBSpr-1684845299810)]

启用和禁用触发器

[外链图片转存中…(img-EYyooyWv-1684845299810)]

删除触发器

[外链图片转存中…(img-7nOFUtxG-1684845299811)]

第九章:导入/导出

数据库备份类型

[外链图片转存中…(img-sDrRm08w-1684845299811)]

[外链图片转存中…(img-8u94TQcX-1684845299812)]

导入/导出三种模式:

• 交互模式:

导出表:

输入Cmd,打开命令窗口,在提示符下输入exp命 令,按提示交互完成导出数据操作。

[外链图片转存中…(img-NxcSRPih-1684845299812)]

[外链图片转存中…(img-csQHFJ8q-1684845299813)]

导入表:

输入Cmd,打开命令窗口,在提示符下输入imp命 令,按提示交互完成导入数据操作

[外链图片转存中…(img-06cFkfC3-1684845299813)]

• 命令行模式:

[外链图片转存中…(img-Pz8yvD3O-1684845299813)]

[外链图片转存中…(img-gjVWHH50-1684845299814)]

[外链图片转存中…(img-GZbOOAl8-1684845299814)]

[外链图片转存中…(img-gRpwX6Mj-1684845299815)]

• 参数文件模式

.SQLDeveloper方式

[外链图片转存中…(img-KkYlXzI1-1684845299815)]


http://www.ppmy.cn/news/92271.html

相关文章

ffprobe学习

如何使用ffprobe 使用ffprobe非常简单。你所要做的就是在命令行上调用它&#xff0c;并将它指向你的视频&#xff0c;如下所示&#xff1a; $ ffprobe 1.mp4 ffprobe version 5.0-full_build-www.gyan.dev Copyright (c) 2007-2022 the FFmpeg developersbuilt with gcc 11.2…

【算法】算法学习三:递归算法 栈

文章目录 一、递归的含义二、基线条件和递归条件三、栈3.1 什么是栈3.2 调用栈3.3 递归调用栈 一、递归的含义 递归算法是一种解决问题的方法&#xff0c;其中函数在执行过程中调用自身。它通过将一个大问题拆分成一个或多个相似的子问题&#xff0c;并逐步解决这些子问题来解…

开发工具---Eclipse 教程Ⅰ

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。 Eclipse 是 Java 的集成开发环境&#xff08;IDE&#xff09;&#xff0c;当然 Eclipse 也可以作为其他开发语言的集成开发环境&#xff0c;如C&#xff0c;C&#xff0c;PHP&#xff0c;和 Ruby 等。 Eclipse 附带…

《Spring Guides系列学习》guide11 - guide15

要想全面快速学习Spring的内容&#xff0c;最好的方法肯定是先去Spring官网去查阅文档&#xff0c;在Spring官网中找到了适合新手了解的官网Guides&#xff0c;一共68篇&#xff0c;打算全部过一遍&#xff0c;能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

我为什么放弃WinUI3

基于WinUI3开发HiNote已经有一个多月的时间了&#xff0c;算是做出来一个简单能用的C端软件。 基于个人的经历&#xff0c;说说其中的开发体验。 UI设计语言 无论是否抄袭苹果&#xff0c;WinUI3给人的感觉都是眼前一亮的。简洁美观&#xff0c;现代化&#xff0c;毛玻璃的美…

Python之并发编程一背景知识

一、开篇介绍 顾名思义&#xff0c;进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统&#xff0c;是操作系统最核心的概念&#xff0c;也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展…

DRF之三大组件

一、django路由转换器 django转换器:django 2.x以后&#xff0c;为了取代 re_path -int path(books/<str:name>) ---->/books/1----》name1---》当参数传入视图类的方法中-str-path-slug-uuid 二、Django配置文件 1 项目的根路径 BASE_DIR Path(__file__)…

使用dumpbin工具查看动态库中函数列表

一、Windows环境下如何安装dumpbin工具&#xff1f; Dumpbin是Visual Studio自带的一个命令行工具&#xff0c;用于查看可执行文件、静态库和动态库的导入表、导出表、符号表等信息。在Windows环境下&#xff0c;可以通过以下步骤安装和使用dumpbin&#xff1a; 1. 打开 Visu…