0301-数据库Oracle简介

本文介绍了数据库技术的学习内容,包括Oracle和MySQL的基础操作,如CRUD,SQL查询,以及数据库设计原则如三范式。还提到了JDBC在Java中的应用,数据库的事务和异常处理,以及数据库可视化工具的使用。此外,文章强调了数据库管理系统的角色和数据库权限管理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 数据库技术学习内容与学习方法

学习内容:
在这里插入图片描述

  1. Oracle 数据库
    目前最好的关系型数据库。
    基本的 C R U D 命令。
    SQL 语句。select(R),update(U),delete(D),insert(C)
  2. MySQL 数据库
    中小型项目非常好用的关系型数据库。
    灵活,小巧。
  3. 扩展软件开发流程中数据库设计原则
    ER 图 —》根据需求分析数据库结构。
    三范式 —》 学会使用范式来规范表结构。
  4. JDBC
    在 Java 中连接数据库的技术。
    在 Java 代码中想操作数据库中的数据。就必须使用到 JDBC 技术。
    工具类的封装。DAO-Service 的分层。
    一定要遵守编码规范。

学习难点:

  1. 数据库高级查询:子查询,多表连接查询,自连接查询。
  2. 分级查询与聚合函数。
  3. 分层时事务处理,异常处理,资源释放。必须按规范编写。

  • 数据库,数据库管理系统,数据库可视化工具

数据库(DataBase):

数据库:一个保存数据的仓库。
在计算机中只有硬盘能长期保存数据。
数据库主是保存到硬盘的数据。都是以文件的形式保存。

数据库管理系统(DataBase Manager System):

我们平时叫数据库,说的其实是DBMS

数据库管理系统就是一个软件系统。我们使用这个软件系统来管理保存数据的文件。
我们通过向管理系统 发送命令 的方式,让管理系统 帮我们去管理保存数据的文件。

通过DBMS可更方便的进行数据库的查询,过滤,保存,更新。

数据库可视化工具:

这是一个与数据库管理系统无关的软件。
使用数据库可视化工具可以以界面的方式来管理数据。

操作 Oracle 数据库的可视化工具:
在这里插入图片描述
操作 MySQL 数据库的可视化工具:
在这里插入图片描述


  • Oracle 数据库管理系统

Oracle 数据库版本:

XE 简化版,是一个可以实现 CRUD 的一个版本。
企业版 和 标准版。

SID :

我们使用 Oracle 数据库时。每一个库都是一个实例。实例的唯一标识 称为 SID。

在 Oracle 数据库中每一个新工程,是分别创建不同的用户来实现区分。新工程与原有老工程,使用的库是同一个。

Oracle 数据库一般只有一个库。其他都是创建不同的用户来实现对应不同的工程

企业版:SID:orcl
简化版:SID:XE

sys 和 system:

这是两个 Oracle 数据库中的管理员账号(DBA)。

Sys 有最高的管理权限。

但是平时我们不使用 sys 和 ssytem。

Scott 账号:

Oracle 数据库中的一个案例账号。
XE版本中没有scott账号。


  • 使用可视化工具

创建连接:

第一步:使用 sys 或 system 创建连接
在这里插入图片描述
创建新用户:

在 Oracle 数据库中,当有一个新的工程需要开发时,不是创建一个新的数据库。而是创建新用户来使用
在这里插入图片描述
还要为用户绑定角色 :
CONNECT 和 RESOURCE 。

connect:负责连接,用户可以连接到我们的数据库中来。
resource:数据处理,可以对数据表进行CRUD命令。

Oracle 数据的权限管理:
在这里插入图片描述
权限:用户可以对表或其他对象,进行操作的每一个动作。
角色:是一系列权限的集合。


  • 数据表(table)

关系型数据库:

Oracle 数据库号称 关系-对象型数据库。
其实就是在关系型数据库基础上,使用了些对象的概念。

关系:一个关系其实就是一个二维表格。由行和列组成。

表的结构由列确定:
在这里插入图片描述
创建数据表:

表中的列有:列名,数据类型,长度大小,非空约束,默认值约束,PK主键约束。
在这里插入图片描述
创建数据表就是为表设置列的过程。
列中:数据类型 和 约束


  • 数据类型

可变长字符串类型 varchar2

一个可以根据输入的字符串大小自动变短的数据类型。
Varchar2(20) 表示最长可以保存 20 个字符长度的字符串类型。
但是当输入的字符串长度不够20时,可以自动将大小缩短到合适的长度。

数据类型:

Integer / int
Float / number(10,2)

number(10,2) 表示可以保留 10 位有效数字,其中小数位是 2 位。

日期时间类:

Date 日期
Timestamp 时间戳


  • 完整性约束

完整性约束。是在数据库中为了保证数据 正确性的。

完整性约束的分类:

完整性约束一共有四种:

  1. 实体完整性约束
  2. 域完整性约束
  3. 引用完整性约束
  4. 自定义完整性约束

实体完整性约束:

实体:表中的每一行。
实体完整性约束只有一个:主键约束(PK)
----必须保证每一个实体的唯一性。
----使用主键约束的列(字段),具有唯一非空两项属性。

域完整性约束:

域:表中的列。
域完整性就是用来维护这一列数据的正确性。
域完整性约束:数据类型,长度大小,非空,唯一,检查,默认值。

引用完整性约束:

引用:两张表之间的关系。
在这里插入图片描述
在这里插入图片描述
引用完整性的约束只有一种:外键约束(FK)。

自定义完整性约束:

自定义完整性约是使用存储过程来实现的。
存储过程。在现在的开发中,明确表明不再使用的技术。


  • 创建数据表

每张表都应该有一个主键字段。
主键字段的条件是实体之间唯一。


  • 创建外键约束

外键约束 完成引用完整性的约束条件。

引用完整性一定是二张表。

班级表 class_no5 主键表 主键是class_id
在这里插入图片描述
学员表 student_no5 外键表 外键是stu_class_id
在这里插入图片描述
需要 stu_class_id 字段 的值 受 class_id 的约束。

应该为 stu_class_id 字段加外键约束条件。

在这里插入图片描述


  • 三范式

使用三范式来规范我们数据表的结构。
目的是为了减少数据表中的数据冗余
数据冗余 表示 数据重复。
有数据冗余时,就很容易造成数据不一致。

-第一范式(1NF):保证域的原子性

列不可再拆分,如果有违反的地方,就需要进行拆分列。

例如:地址,姓名。
----地址可以拆分省,市,区,街道,详细地址。
----姓名可以拆分姓,名。

-第二范式(2NF):表中的所有非主键字段都依赖于表中的主键字段

取消部分依赖,如果有违反的地方,就需要进行拆分表。

拆分表 把与主键无关的字段从本表中拆分出去。

-第三范式(3NF):表中的所有非主键字段都直接依赖于表中的主键字段

取消传递依赖,如果有违反的地方,就需要进行拆分表。

折分出去的表,与本表还有关系。
例如:学号,姓名,班级名,教员名
----但是教员是直接依赖于班级。拆分出来二张表。
----学号(PK),姓名,学员班级号(FK,引用班级号)
----班级号(PK),班级名,教员名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值