Oracle数据库从入门到精通系列之十八:详细总结Oracle数据库核心知识点

news/2024/11/14 12:36:06/

Oracle数据库从入门到精通系列之十八:详细总结Oracle数据库核心知识点

  • 一、Oracle数据库核心概念
  • 二、Oracle非容器数据库
  • 三、Oracle容器数据库
  • 四、容器数据库和非容器数据库的区别
  • 五、Oracle数据库多租户
  • 六、Oracle数据库多租户数据库模型
  • 七、Oracle数据库类型
  • 八、Oracle数据库创建表和插入数据
  • 九、查询当前所在的数据库
  • 十、查询当前数据库所有的表

一、Oracle数据库核心概念

  1. 数据库实例:一个运行在物理服务器上的单个Oracle数据库。一个物理服务器上可以运行多个Oracle数据库实例,每个实例都拥有自己的系统进程和内存结构。

  2. 数据库:一个由数据表、索引、触发器、存储过程、视图等组成的数据集合。Oracle数据库可以被分成多个逻辑区域,称为表空间(tablespaces),每个表空间包含多个数据文件(data files)。

  3. 数据字典:Oracle数据库中的元数据信息,记录了数据库对象的定义和属性信息。数据字典由系统表(system tables)和视图(views)组成,可以通过SQL查询来访问数据字典信息。

  4. 实例配置文件:包含了Oracle数据库实例的配置信息,如内存分配、日志的生成和维护、数据缓存等参数的设置。

  5. 进程和线程:Oracle数据库实例由多个后台进程和线程组成,负责执行各种系统任务,如监控、维护数据库、管理内存结构,并处理用户请求。

  6. 数据库用户和授权:Oracle数据库中的用户是授权访问数据库的实体。每个用户拥有自己的登录名和密码,可以访问指定的数据表、视图、存储过程等对象。

  7. 事务处理:Oracle数据库支持ACID事务(原子性、一致性、隔离性和持久性),确保在数据处理过程中的正确性和一致性。

  8. 高可用性和容错性:Oracle数据库提供了多种机制来实现高可用性和容错性,如RAC集群、数据保护和复制、备份和恢复等。

二、Oracle非容器数据库

  • Oracle数据库非容器数据库是指没有采用多租户数据库模型的Oracle数据库。在非容器数据库中,所有的数据库对象都是在实例级别创建和管理的,不具备多租户和隔离功能。每个数据库对象(例如表空间、表、索引、用户)都是直接在实例级别创建和管理的,所有的数据库对象都是全局可见的。
  • 非容器数据库优点是运维管理比较简单,不需要涉及到多个容器和子容器,SQL语句也比较简单,直接针对单个数据库对象进行查询和操作。同时,非容器数据库在资源管理和性能优化方面也具备一定的优势,可以通过单个实例和全局参数进行优化和调整。
  • 但是,非容器数据库也存在一些缺点,例如不能提供多租户和隔离功能,也不适合在一个实例中运行多个应用程序,容易导致资源冲突和干扰。同时,非容器数据库在数据库对象管理和版本控制方面也相对比较困难,需要手动进行管理和维护,容易出现数据错误、重复等问题。

三、Oracle容器数据库

  • Oracle数据库容器数据库是指采用多租户数据库模型的Oracle数据库。在容器数据库中,一个Oracle数据库主实例作为多个租户的容器,每个租户拥有自己的私有数据库。容器数据库支持多个租户共享同一个物理数据库实例,并且可以保证每个租户之间的数据彻底隔离,从而实现了更好的资源利用和管理灵活性。
  • 容器数据库实现需要借助Oracle Container Database(CDB)和Pluggable Database(PDB)的概念和特性。CDB是一个包含多个PDB的容器数据库,每个PDB都是一个独立的数据库实例,但是共享CDB的系统资源和Oracle实例。每个PDB都可以被视为一个租户的私有数据库,它可以被单独管理和配置,而且数据之间是完全隔离的。在容器数据库中,CDB可以被看作是容器数据库的容器,PDB可以被看作是容器数据库的租户。容器数据库可以实现更好的资源利用和管理灵活性,是企业中部署 Oracle 数据库的一种新型架构。

四、容器数据库和非容器数据库的区别

  • Oracle数据库的容器数据库和非容器数据库的区别在于它们如何组织和管理各种数据库对象。
  • 非容器数据库中,所有的数据库对象都是直接在实例级别创建和管理的
  • 容器数据库则引入了多个逻辑容器,每个容器可以包含多个数据库。每个容器都有自己的数据字典、系统表空间和用户表空间,可以独立管理和分配资源。

容器数据库的优点是它可以提供更好的隔离性和多租户功能,支持让多个应用程序在同一个实例中运行,而不会互相干扰。容器数据库还可以提供更灵活的数据库管理和多版本控制功能,使得各个数据库对象之间的依赖关系更加清晰和明确。

然而,在使用容器数据库时,也需要了解一些容器数据库特有的概念和管理方法,例如,需要使用特定的SQL语句来查询容器和子容器中的各种对象,需要使用多个命令来管理和操作各个容器和数据库对象,需要保证所有的容器和子容器都具有足够的系统资源和权限等等。

五、Oracle数据库多租户

  • Oracle数据库多租户是指在一个物理数据库实例中,为多个不同的应用程序提供数据存储和管理服务。不同的应用程序被视作不同的租户,每个租户拥有自己的私有数据库,具备完全独立的资源分配、数据库对象管理和数据隔离等特性。在多租户模型中,租户之间的数据是完全隔离的,每个租户可以使用自己的数据库对象和数据,同时也能够共享相同的物理资源,从而降低了企业数据库资源浪费和管理成本。
  • Oracle数据库多租户模型使用Pluggable Database(PDB)的概念和特性来实现,每个PDB可以被视为一个租户的私有数据库。PDB在CDB上运行,并且共享CDB的系统资源和Oracle实例。每个PDB可以被单独管理和配置,而且数据之间是完全隔离的。在多租户模型中,CDB可以被看作是容器数据库的容器,PDB可以被看作是容器数据库的租户。Oracle数据库多租户模型可以提升数据库的效率,降低开发和维护成本,是现代化企业数据库应用的首选架构。

六、Oracle数据库多租户数据库模型

Oracle数据库的多租户数据库模型是一种新型的数据库架构,它将一个Oracle数据库主实例作为多个租户的容器,每个租户拥有自己的私有数据库。多租户数据库模型支持多个租户共享同一个物理数据库实例,并且可以保证每个租户之间的数据彻底隔离,从而实现了更好的资源利用和管理灵活性。

在多租户数据库模型中,所有的数据库对象都是在租户级别管理和分配的,比如表空间、表、索引、用户等。每个租户拥有自己的表空间和用户,可以独立管理和分配资源。租户可以根据自己的需求和实际情况,灵活地调整和配置自己的资源。

多租户数据库模型的实现需要借助Oracle Container Database(CDB)和Pluggable Database(PDB)的概念和特性。CDB是一个包含多个PDB的容器数据库,每个PDB都是一个独立的数据库实例,但是共享CDB的系统资源和Oracle实例。每个PDB都可以被视为一个租户的私有数据库,它可以被单独管理和配置,而且数据之间是完全隔离的。在多租户数据库模型中,CDB可以被看作是多租户数据库的容器,PDB可以被看作是多租户数据库的租户。

七、Oracle数据库类型

Oracle数据库支持多种数据类型,包括:

  1. 数字类型(Number):用于存储数字数据,包括整数、小数等。

  2. 字符类型(Char、Varchar2、Nchar、Nvarchar2):用于存储字符数据,包括单字节字符和多字节字符。

  3. 日期类型(Date、Timestamp):用于存储日期和时间数据。

  4. 布尔类型(Boolean):用于存储逻辑值(True或False)。

  5. 二进制类型(Raw、Long Raw、Blob、Bfile):用于存储二进制数据,包括图像、音频、视频等。

  6. 大对象类型(Clob、Bfile):用于存储超大字符数据或二进制数据。

  7. 几何类型(SDO_GEOMETRY):用于存储空间数据,包括点、线、面等。

  8. XML类型(XmlType):用于存储XML文档数据。

除了以上基本的数据类型,Oracle数据库还支持自定义数据类型,可以使用用户定义类型(User-defined types)来创建自定义数据类型。

八、Oracle数据库创建表和插入数据

创建表:

  • 创建了一个名为employees的表,包含id、name、department和salary四个字段,其中id是主键
CREATE TABLE employees (id NUMBER(10) PRIMARY KEY,name VARCHAR2(50),department VARCHAR2(50),salary NUMBER(10, 2)
);

插入数据:

  • 使用INSERT INTO语句向employees表插入了三条数据,分别对应三个员工的信息
NSERT INTO employees (id, name, department, salary)
VALUES (1, 'John Doe', 'Finance', 5000.00);INSERT INTO employees (id, name, department, salary)
VALUES (2, 'Jane Doe', 'Sales', 6000.00);INSERT INTO employees (id, name, department, salary)
VALUES (3, 'Bob Smith', 'Marketing', 5500.00);

查询数据:

SELECT * FROM employees

在这里插入图片描述

九、查询当前所在的数据库

SELECT ora_database_name FROM dual;
ORA12C

十、查询当前数据库所有的表

该命令将返回当前用户所拥有的所有表的表名。

SELECT table_name FROM user_tables;
TB
T
TCHAR
TNUM

在这里插入图片描述
如果想查询其他用户下的表,可以使用以下命令:
<owner_name>为要查询的用户的名称。

SELECT table_name FROM all_tables WHERE owner='<owner_name>';

如果想查询数据库中所有的表,不论是哪个用户创建的,可以使用以下命令:

SELECT table_name FROM dba_tables;

需要注意的是,使用dba_tables需要具备DBA权限。如果没有DBA权限,可以使用all_tables查询当前用户所拥有的所有表,或者使用user_tables查询当前用户自己创建的表。


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

相关文章

修改热血传奇服务器地址,传奇私服如何更改上线地点

在传奇私服(http://www.000sf.com)中我们可以对玩家的出生地点做出修改&#xff01;可以通过我们对客户端下一些文件的简单修改就可以实现这个功能&#xff01;此方法适用于所有的私服版本&#xff01;如果你想要让你的游戏显示出与众不同的地方&#xff0c;那么我们就可以从这…

基于电容电流前馈与电网电压全前馈的三相LCL并网逆变器谐波抑制MATLAB仿真

基于电容电流前馈&#xff0b;电网电压全前馈的三相并网逆变器谐波抑制MATLAB仿真资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87940934模型简介&#xff1a; 测试环境为MATLAB2021b 一共包含两个模型&#xff1a;一个是传统无改进模型&#xff0c;一个…

热血传奇Tile地图绘制方法分析及平滑绘制分析

http://blog.csdn.net/lyin_c/article/details/25742765 众所周知热血传奇的地图绘制是不平滑的。因为其绘制间隔是以游戏中的X,Y坐标为单位进行绘制间隔。而一个X坐标.和Y坐标 在游戏内表示 48&#xff0c;32 个像素点。 而游戏中的房屋等元素在我看来更是坑爹。因为房屋这些元…

关于热血传奇actor绘制的分析与思考

代码内将每个actor的动作细分为 站立 行走 攻击 死亡 等等。 而每个动作都包含8个方向的定义。指定如何从资源文件中 获取相应的纹理。 以下是方向的常量 // Actor 方向常量DIR_UP 0;DIR_UPRIGHT 1;DIR_RIGHT 2;DIR_DOWNRIGHT 3;DIR_DOWN 4;DIR_DOWNL…

【热血传奇】 脚本开发之变量详解

标识 [001]-[499](各引擎不同标识的上限值不能。正常的是499个)&#xff0c;这不是变量&#xff0c;这是标识 标识的初始值是关闭的&#xff0c;它不会因为人物下线或服务器重启而重置 标识和变量不同的是只有0和1&#xff0c;标识是私有的&#xff0c;不共享。 一般适用于游戏…

怎样制作传奇私服服务器,新手传奇gm必须学会如何制作传奇私服小地图

对于任何一个传奇私服服务器来说小地图都是非常重要的一个功能,当然如果我们是找传奇一条龙来做服务器他们都会给我们做好,但是大多数时候我们需要自己进行相关设置。对于这样的情况小地图的相关制作就变成了一件相对比较困难的事情,因为大多数时候我们的服务器都会增加一些…

做挂第一步:如何找基址(以热血传奇为例)

如何找热血传奇基址&#xff1f; 一&#xff0e;首先打开游戏并使用CE加载游戏进度。 二&#xff0e;在数值中输入血量值207,点击新的扫描&#xff0c;扫描类型选择精确数值&#xff0c;如图所示&#xff1a; 为什么要输入207呢&#xff1f;这是指游戏中人物的当前血量&#…

热血传奇资源文件wzl、wzx解析

盛大传奇客户端的图片资源都保存在data目录下的wzl文件中&#xff0c;wzl文件结构比较简单&#xff0c;由一个文件头结构和若干图片数据组成。 找了个最小的wzl文件作为例子 蓝色高亮部分就是文件头&#xff0c;其中只有ImageCount有意义&#xff0c;其他的字段不清楚是做什么…