一 、数据库技术学习内容与方法
1.1学习内容
1 Oracle 数据库
目前最好的关系型数据库
基本的CRUD命令。
SQL语句。select(R),update(U),detele(D),insert(C)
2 MySQL数据库
中小型醒目非常好用的关系型数据库。
灵活,小巧。
3 扩展软件开发流程中数据库设计原则
ER图--->根据需求分析数据库结构。
三范式--->学会使用凡是来规范表结构
4 JDBC
再Java中链接数据库技术
在Java代码中向操作数据库中的数据。就必须使用到JDBC技术。
工具类的封装。DAO-Service的分层。
一定要遵守编码规范
1.2 学习难点
1 数据库高级查询:子查询,多表连接查询,自连接查询。
2 分级查询与聚合函数。
3 分层时事务处理,异常处理,资源释放。必须按规范编写。
1.3 学习方法
1 背:SQL语句就是一些固定的格式。
例如查询所有:select*from 表名
2练习:JDBC的规范
二、 数据库,数据库管理系统,数据库可视化工具
2.1 数据库(DataBase)
数据库:一个保存数据的仓库。
在计算机中只有因公安能长期保存数据。
数据库主要是保存到硬盘的数据。都是以文件的形式保存
2.2 数据库管理系统(DataBase Manager System)
我们平时叫数据库,说的其实是DBSM。
数据库管理系统就是一个软件系统。我们使用这个软件系统来管理保存数据的文件。
我们通过向管理系统发送命令的方式,让管理系统帮我们去管理保存数据的文件。
通过DBMS可更方便的进行数据库的查询,过滤,保存,更新。
2.3 数据库可视化工具
这是一个与数据库管理系统无关的软件。
使用数据库可视化工具可以以界面的方式来管理数据。
操作Oracle数据库的可视化工具
操作MySQL数据库的可视化工具
三、Oracle 数据库管理系统
3.1 Oracle数据库版本
XE 简化版,是一个可以实现CRUD的一个版本。
企业版和标准版,目前学习阶段不会使用
3.2 SID
我们使用Oracle数据库时。每一个库都是一个实例。实例的位移标识 称为SID。
在Oracle数据库中每一个新工程,是分别创建不同的用户来实现区分。新工程与原有老工程,使用的库是同一个。
Oracle数据库一般只有一个库。其他都是创建不同的用户来实现对应不同的工程。
企业版:SID:orcl
简化版:SID:XE
3.3 sys和system
这是两个Oracle数据库中的管理员账号(DBA)。
Sys有最高的管理权限
但是平时我们是不适用sys与system。
3.4 Scott账号
Oracle数据库中的一个案例账号。
XE版本中没有scott账号。
四、使用可视化工具
4.1 创建连接
第一步:使用sys或system创建连接
4.2 创建新用户
在Oracle数据库,当有一个新的工程需要开发时,不是创建一个新的数据库。
而是创建新用户来使用。
还要为用户绑定角色
CONNECT和RESOURCE
五、数据表(table)
5.1 关系型数据库
Oracle数据库号称关系-对象型数据库。
其实就是在关系型数据库基础上,使用了些对象的概念。
关系:一个关系其实就是一个二维表格。有行和列组成。
5.2 表的结构由列确定
5.3 创建数据表
表中的列由:列名,数据类型,长度大小,非空约束,默认值约束,PK主键约束
创建数据表就是为表设置列的过程。
列中:数据类型和约束。
六、数据类型
6.1 可变长字符串类型varchar2
一个可以更具输入的字符串大小自动变短的数据类型。
Varchar2(20)表示最长可以保存20个字符长度的字符串类型。
但是当输入的字符串长度不够20时,可以自动将大小缩短到合适的长度。
6.2 数据类型
Integer/int
Float/number(10,2)
number(10,2)表示可以保留10位有效数字,其中小数位是2位
6.3 日期时间
Date 日期
Timestqmp 时间戳
七、完整性约束
完整性约束。是在数据库中为了保证数据 正确性的。
(1) 实体完整性约束
实体:表中每一行
完全完整性约束只有一个:主键约束(PK)
必须保证每一个实体的唯一性。
使用主键约束的列(字段)具有唯一和非空二项属性。
(2)域完整性约束
域:表中的列
域完整性就是用来维护一列数据的正确性。
域完整性约束:数据类型,长度大小,非空,唯一,检查,默认值
(3) 引用完整性约束
引用:两张表之间的关系
引用完整性的约束只有一种:外键约束(FK) 。
(4) 自定义完整性约束
自定义完整性是使用存储过程来实现的。
存储过程。在现在的开发中,明确不在使用的技术。
八、创建数据表
每张表都应该由一个主键字段。
主键字段的条件是实体之间唯一。
九、创建外键约束
外键约束完成引用完整性的约束条件。
引用完整性一定是两张表。
班级表class_no5 主键表 主键是 class_id
学员表student_no5 外键表 外键是 stu_class_id
需要stu_ class_id 的字段的值受class_id的约束。
应该为stu_class_id字段加外键约束条件。
十、 三范式
第一范式(1NF):保证域的原子性
列不可再拆分。
拆分列
第二范式(2NF):表中的所有非主键字段都依赖于表中的主键字段
取消部分依赖。
拆分表
第三范式(3NF):表中的所有非主键字段都直接依赖于表中的主键字段
取消传递依赖。
拆分表。