Oracle数据库的学习

Oracle数据库的学习
(尚学堂课程之后的学习笔记)

1.数据库的概念

1.1什么是数据库

​ (1)数据库其实就是数据的集合。用户可以对集合中的数据进行新增、查询、更新、删除等操作。

​ (2)数据库是以一定方式存储在一起的、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

2.数据库的类型:

​ 关系型数据库

3.关系型数据库与非关系型数据库之间的区别

3.1关系型数据库

​ 特点:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。支持事务一致特性。

​ 优点:

​ 1.易于维护,都是使用表结构,格式一致;

​ 2.使用方便,SQL语言通用;

​ 3.复杂操作,支持SQL,可用于一个表以及多个表之间非常复杂的查询;

​ 缺点:

​ 1.性能差,读写性能比较差,尤其是海量数据的高效率读写,传统关系型数据库来 说,磁盘I/O是一个很大的瓶颈;

​ 2.存储方式不灵活,固定的表结构,灵活度稍欠。

3.2非关系型数据库

​ 特点:非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等,不支持事务一致特性。

​ 优点:

​ 1.格式灵活,存储数据的格式可以是key,value形式、文档形式、图片形式等等;

​ 2.高扩展性,基于键值对,数据没有耦合性,容易扩展;

​ 3.速度快,无需经过sql层的解析,读写性能很高。

​ 缺点:

​ 1.不支持SQL,不提供SQL支持,学习和使用成本较高;

​ 2.不支持事务,无事务处理能力;

​ 3.不支持复杂查询,数据结构

4.Oracle入门

4.1什么是Oracle数据库

​ 所有的关系型数据库存储数据的集合就是磁盘中的文件,Oracle数据库其实就是一组文件的集合,Oracle数据库分别由:数据文件、控制文件、日志文件所构成。

​ 数据文件(.DBF)

​ 数据文件是一个二进制文件,是用于保存用户应用程序数据和Oracle系统内部数据的文件,这些文件在操作系统中就是普通的操作系统文件。Oracle在创建表空间的同时会创建这些数据文件。

​ 控制文件(.CTL)

​ 控制文件是一个二进制文件,它主要记录数据库的名称、数据库的数据文件存放位置等信息。一个控制文件只能属于一个数据库。如果控制文件丢失,这数据库就无法操作。

​ 日志文件(.LOG)

​ 日志文件在Oracle数据库中分为重做日志(Redo Log File)文件和归档日志文件两种。重做日志文件是Oracle数据库正常运行不可缺少的文件。重做日志文件主要记录了数据库操作过程。用于备份和还原数据库,以达到数据库的最新状态。

4.2Oracle实例

​ 实例就是数据库启动后分配的内存和建立的后台进程,数据库关闭后,物理上的文件还存在,但实例(分配的内存和建立的进程)就没有了。

4.3Oracle实例与数据库的关系

​ 实力就是一组操作系统进程(或者一个多线程的进程)以及一些内存。这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志和控制文件)。

​ 在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立;一个数据库上只有一个实例对其他进行操作。

5.Oracle的目录结构

在这里插入图片描述
​ admin目录:

​ 记录Oracle实例的配置,运行日志等文件。每个实例一个目录。

​ SID:System IDentifier 的缩写,是Oracle实例的唯一标记。在Oracle中一个实例只能操作一个数据库。如果安装多个库那么就会有多个实例,我们可以通过实例SID来区分。由于Oracle中一个实例只能操作一个数据库的原因oracle中也会使用SID来作为库的名称。
在这里插入图片描述

​ cfgtoollogs目录:

​ 下面子目录分别存放当运行dbca,emca,netca等图形化配置程序的log。
在这里插入图片描述

​ checkpoints目录:

​ 存放检查点文件。(初始为空)

​ diag目录:

​ Oracle11g新添加的一个重组目录。其中的子目录,基本上Oracle每个组件都有了自己单独的目录,在Oracle10g中我们一直诟病的log文件散放在四处的问题终于得到解决,无论是asm还是crs还是rdbms,所有组件需要被用来诊断的log文件都存放在了这个新目录下。
在这里插入图片描述
​ flash_recovery_area(闪回区)目录

​ 闪回区:分配一个特定的目录来存放一些特定的恢复文件,用于集中和简化管理数据库恢复工作。闪回区可存储完全的数据文件备份、增量备份、数据文件副本、当前的控制文件、备份的控制文件、spfile文件、快照控制文件、联机日志文件、归档日志、快跟踪文件、闪回日志。

​ oradata目录

​ 存放数据文件
在这里插入图片描述
​ 数据文件
在这里插入图片描述
​ 数据库中的文件介绍:

​ CONTROL01.CTL

​ Oracle数据库的控制文件

​ EXAMPLE01.DBF

​ Oracle数据库表空间文件

​ REDO01.LOG

​ Oracle数据库的重做日志文件

​ SYSAUX01.DBF

​ 11g新增加的表空间。主要存储数据字典以外的其他数据对象。由系统内部自动维护。

​ SYSTEM01.DBF

​ 用于存放Oracle系统内部表和数据字典的数据。比如,表名、列名、用户名等。

​ TEMP01.DBF

​ 临时表空间文件。

​ UNDOTBS01.DBF

​ 撤销表空间文件。用来保存回滚数据。

​ USERS01.DBF

​ 用户表空间。

​ product目录
在这里插入图片描述
​ Oracle RDBMS的软件存放目录。RDBMS即关系数据库管理系统(Relational Database Management System)。

6.Oracle系统用户

6.1sys用户:超级用户,拥有的权限最大。可以完成数据库的所有管理任务。

6.2system用户:没有sys权限大,通常用来创建一些用户查看管理信息的表或视图。不建议使用system用户来创建一些与管理无关的表或者视图。

6.3sys和system在登录时的区别:

​ sys和system在登陆Oracle时,sys只能以系统管理员(sysdba)或系统操作员(sysoper)的权限来登录,而system可以直接登录(normal)。

6.4scott用户

​ scott:是oracle提供的示例用户,提供了一些学习oracle操作的数据表。如:emp、dept、salgrade、bonus表。

7.Oracle的启动与关闭

7.1Oracle启动

​ 通过系统的服务来启动。

​ OracleServiceORCL(必须启动)

​ Oracle OraDb11g_home1TNSListener(必须启动)

7.2Oracle关闭

​ 通过系统的服务来关闭。

8.Oracle的使用

8.1Oracle表空间

Oracle的表空间分类:永久表空间和临时表空间。

永久表空间:

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。

临时表空间:

Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间。

8.2创建永久表空间命令

create tablespace 永久表空间名称 datafile '永久表空间物理文件位置' size 15M autoextend on next 10M permanent online;

9.Oracle基本操作

9.1Oracle中的数据类型

数据类型说明
CHAR类型定长字符串,会用空格填充来达到其最大长度。字段最多可以存储2000字节信息
VARCHAR2类型变长字符串,与char类型不同,不会使用空格填充至最大长度。varchar2最多存储4000字节的信息。
NVARCHAR2包含UNICODE格式数据的变长字符串。最多存储4000字节信息。
NUMBERNUMBER(P,S)常见的数字类型,P为Precision,精度,表示有效数字的位数,最多不能超过38个有效数字。S为Scale,表示小数点数字的位数。
INTEGER是NUMBER的子类型,等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。
BINARY_FLOATBINARY_FLOAT是32位、单精度浮点数字数据类型。可以支持至少6位精度,每个BINARY_FLOAT的值需要5个字节,包括长度字节。
BINARY_DOUBLEBINARY_DOUBLE是64位,双精度浮点数字数据类型。每个BINARY_DOUBLE的值需要9个字节,包括长度字节。
DATE日期数据类型存储日期和时间信息。虽然可以使用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性,为每个日期值,Oracle存储以下信息:世纪、年、月、日期、小时、分钟和秒。一般占用7个字节的存储空间。
TIMESTAMP这是一个7字节或12字节的定宽日期/时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位。
TIMESTAMP WITH TIME ZONETIMESTAMP类型的变种,包含了时区偏移量的值。
TIMESTAMP WITH LOCAL TIME ZONE将时间数据以数据库时区进行规范化进行存储
CLOB二进制数据,存储单字节和多字节字符数据。最大长度4G
BLOB存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。最大长度4G
NCLOB存储UNICODE类型的数据,最大长度4G
LONG存储变长字符串(超长字符串),最多达2G的字符数据
LONG RAW能存储2GB的原始二进制数据,可以存放多媒体图像声音。
RAW用于存储二进制或字符类型数据,必须指定长度。这种数据类型存储的数据不会发生字符集转换。可以存放多媒体图像声音。

10在Oracle中创建表

10.1表名命名规则:

​ 必须以字母开头;

​ 长度不能超过30个字符;

​ 避免使用Oracle的关键字;

​ 只能使用A-Z、a-z、0-9、_#$。

10.2使用带有特殊符号地表名

​ Oracle在创建表时,表名会自动转换大写。Oracle对表名大小写不敏感。

​ 如果在定义表名时含有特殊符号,或者用小写字母来定义表名则需要在表名两侧添加双引号。

11数据库中的约束

11.1约束的作用

​ 约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。

11.2约束类型

​ (1)主键约束(Primary Key Constraint)

​ 唯一性,非空性。

​ (2)唯一约束(Unique Constraint)

​ 唯一性,可以空,但只能有一个。

​ (3)检查约束(Check Constraint)

​ 对该列数据的范围、格式的限制(如:年龄、性别等)

​ (4)非空约束(Not Null Constraint)

​ 该列不允许包含空值。

​ (5)外键约束(Foreign Key Constraint)
​ 建立两表间的关系并引用主表的列。

12数据库中表关系

​ 设计关系数据库的最重要部分是将数据元素划分为相关的表,我们可以根据数据本身的关联性,将不同表之间的数据聚合在一起。注意:无论在表与表之间建立了什么样的关系,决定数据之间是否有关系的不是表,而是数据本身。

​ 表与表之间一般存在三种关系,即一对一,一对多,多对多关系。

​ 12.1一对多

​ 一对多关系是建立在两张表之间的关系。一个表中的一条数据可以对应另一个表的多条数据。(外键永远在多方,外键允许重复,允许含有空值。)

​ 12.2一对一

​ 一对一关系是建立在一对多的基础上,外键可以在任何一方,需要让外键一方具备唯一约束。

​ 12.3多对多

​ 需要建立一个中间表,中间表里建立两个列,然后需要用这两个列作为这个表的联合主键,然后每个列在作为外键参照各自的表的主键。

建立了什么样的关系,决定数据之间是否有关系的不是表,而是数据本身。

​ 表与表之间一般存在三种关系,即一对一,一对多,多对多关系。

​ 12.1一对多

​ 一对多关系是建立在两张表之间的关系。一个表中的一条数据可以对应另一个表的多条数据。(外键永远在多方,外键允许重复,允许含有空值。)

​ 12.2一对一

​ 一对一关系是建立在一对多的基础上,外键可以在任何一方,需要让外键一方具备唯一约束。

​ 12.3多对多

​ 需要建立一个中间表,中间表里建立两个列,然后需要用这两个列作为这个表的联合主键,然后每个列在作为外键参照各自的表的主键。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值