一:概述
一、简介
1. 概念:Oracle 数据库是 ORACLE 公司提供的以分布式数据库为核心的一组软件产品,是使用最为广泛的大型数据库管理系统。
2. 特点
1. 开放性:Oracle能在所有主流平台上运行(包括Windows),完全支持所有的工业标准,采用完全开放策略,可以使客户选择最适合的解决方案,对开发商全力支持。
2. 可伸缩性,并行性:Oracle的并行服务器通过使一组结点共享同一簇中的工作来扩展Windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
3. 性能优越:Oracle几乎是性能最高的关系型数据库,保持开放平台下的TPC-D和TPC-C的世界记录。
4. 客户端支持及应用模式:Oracle支持多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
5. 操作性:Oracle相对于其他RDBMS来讲较复杂,同时提供GUI和命令行,在WindowsNT和Unix下操作相同。
6. 使用性:Oracle具有相当长时间的开发经验,完全向下兼容。得到广泛的认可与应用,完全没有风险。
7. 安全性:Oracle获得了最高认证级别的ISO标准认证。它提供多层安全性,包括用于评估风险、防止未授权的数据泄露、检测和报告数据库活动,以及通过数据驱动的安全性在数据库中实施数据访问控制的控制。
3. 架构体系
1. 数据库实例(instance):指数据库服务器的内存及相关处理程序,是Oracle 的心脏,包括两个部分:
1. SGA(System Global Area,即系统全局区活共享内存区),性能核心,包括三个部分:
1. 数据缓冲区:可避免重复读取常用的数据;
2. 日志缓冲区:提升了数据增删改的速度,减少磁盘的读写而加快速度;
3. 共享池:使相同的SQL语句不再编译,提升了SQL的执行速度;
2. 后台进程:系统监控、进程监控、数据读写、日志读写、检验点进程,配合完成数据库管理任务;
2. 数据库文件
1. 数据文件(.dbf):存放数据库的数据,保存信息的物理存储位置;
2. 控制文件(.ctl) :存放数据库的基本信息,告诉数据库到哪里找到数据文件和重做日志文件等;
3. 日志文件(.log):记录日志信息
4. 参数文件(.ora):数据库启动时读取的属性
4. 逻辑结构
1. 表空间(tablespace):最高级的逻辑存储结构,数据库是由多个表空间组成,表空间对应于若干个磁盘文件,即表空间是由一个或多个磁盘文件构成的。
1. 系统表空间:默认的表空间,用于保存数据字典,保存所有的PL/SQL程序的源代码和解析代码,包括存储过程、函数、包、数据库触发器等,保存数据库对象(表、视图、序列)的定义;
2. 数据表空间:用于存储用户数据的普通表空间;
3. 临时表空间:存储SQL执行过程中产生的临时数据;
4. 回滚表空间:用于存放回滚段,每个实例最多只能使用一个撤销表空间;
2. 数据段(Segment):是由多个数据区构成的(可以不连续),它是为特定的数据库对象(如表段、索引段、回滚段、临时段)分配的一系列数据区。
1. 数据段:保存表中的记录。当创建一个表时,系统自动创建一个以该表的名字命名的数据段。
2. 索引段:索引中的索引条目。一旦建立索引,系统自动创建一个以该索引的名字命名的索引段。
3. 临时段:在执行查询等操作时,Oracle可能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。
4. 回滚段:保存回滚数据。当一个事务开始处理时,系统为之分配回滚段,回滚段可以动态创建和撤销。
3. 数据区(Extent):一组连续的数据块,用来保存特定数据类型的数据。
4. 数据块(Blocks):Oracle用来管理存储的最小单元,也是最小的逻辑存储结构,块中存放表的数据和索引的数据。
1. 块的结构:由块头、表目录、行目录、空余空间、行数据五部分组成。
1. 块头(header/Common and Variable):存放块的基本信息,如:块的物理地址,块所属的段的类型。
2. 表目录(Table Directory):存放表的信息。
3. 行目录(Row Directory):存放行数据信息。
4. 空余空间(Free Space):块中未使用的区域,这片区域用于新行的插入和已经存在的行的更新。
5. 行数据(Row Data):真正存放表数据和索引数据的地方。这部分空间是已被数据行占用的空间。
2. 块的存储区:主要包含空闲空间和已经使用的空间。
1. PCTFREE参数:指定块中必须保留的最小空闲空间比例。当块中的空闲存储空间减少到PCTFREE所设置的比例后,Oracle将块标记为不可用状态,新的数据行将不能被加入到这个块。
2. PCTUSED参数:制定一个百分比,当块中已经使用的存储空间降低到这个百分比只下时,这个块才被重新标记为可用状态。
6. 数据类型
二、安装部署(Windows)
1. 官网下载(https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c)
2. 解压并运行setup.exe进行安装
3. 配置监听(Net Configuration Assistant 和 listener.ora)
4. 配置服务(客户端)(Net Configuration Assistant 和 tnsnames.ora)
二:Shell 操作
一、数据定义语言(DDL)
二、数据操作语言(DML)
三、数据查询语言(DQL)
1. 单表
1. 条件查询
1. 条件判断
2. 逻辑判断
3. 范围查找
4. 模糊查找
2. 分组
3. 排序
4. 分页
2. 多表
1. 表与表之间的关系
1. 一对一:唯一外键对应/主键对应
2. 一对多:多方创建外键对应一方的主键
3. 多对多:创建中间表,至少有两个字段分别作为外键指向多对多双方的主键。
2. 连接查询
1. 方言:过滤的笛卡尔积
2. 自然连接:属性相同的元组对
3. 内连接:等值连接
4. 外连接:注意空值
2. 子查询:嵌套查询(select中包含select)
四、数据控制语言(DCL)
五、完整性约束
1. 作用:DBMS自动按照一定的约束条件对数据进行监测,防止不符合规范的数据进入数据库,以确保数据库中存储的数据正确、有效、相容。
2. 实体完整性
1. 概念:主键的值不能为空或部分为空的约束条件称为实体完整性。
2. 作用:表示每一行数据不重复。
3. 分类(所有的INT改为NUMBER,VARCHAR改为VARCHAR2)
1. 主键约束(PRIMARY KEY):指定该列的值可以唯一地标识该列记录且不能为空
2. 唯一约束(UNIQUE):指定某列或者几列组合不能重复。
3. 域完整性
1. 概念:域完整性指列的值域的完整性。
2. 作用:保证表中某些列不能输入无效的值。
3. 分类(所有的INT改为NUMBER,VARCHAR改为VARCHAR2)
1. 非空约束(NOT NULL):指定某列不能为空
2. 默认约束(DEFAULT):设置默认值
4. 参照完整性
1. 概念:外键约用来在两个表之间建立连接,一对多关系中一方的主键。
2. 作用:保持数据的一致性,完整性
六、视图
1. 概念:视图是从一个或多个表中导出的一个虚拟表,用户对视图的各种操作都不会影响源数据,保障数据库系统的安全。
2. 作用:简化用户对数据的操作,屏蔽真实表结构变化的影响,保护数据库数据安全。
3. 使用