1、什么是数据?
* 生活中用来描述事物信息的内容就是数据,如:姓名、性别、年龄、籍贯等;
* 有关数据的操作,从人类诞生至今经历了很多时期的发展。如:结绳记事、文字的出现、纸张的出现、后期发展到使用文件柜的形式来操作数据;
* 随着计算机的出现,数据的操作发展到使用电子设备来操作,如:软盘、光盘、硬盘、U盘等等,使用电子设备来操作数据可以实现长久的保存数据,数据的安全性很高;
* 单纯的数据本身是没有任何意义的,只要给数据定义一个确定的标题之后数据才会有意义,也就是使用表格的形式来定义数据;
2、什么是数据库?
字面意思理解为存储数据的仓库,生活中的水库、车库、油库、粮库、手机里面的通讯库等都是一种数据库,这种生活中的数据库存在数据单一性和处理数据效率低的问题。
计算机中数据库的定义具体为:数据库是一个能高效的存储并且处理所有数据的一个软件。
3、数据库的分类
根据计算机存储数据介质(内存、硬盘)的不同,将数据库分为两类:关系型数据库(硬盘)、非关系型数据库(内存)。
#### 1. 关系型数据库:
* 大型关系型数据库(GB以上)----DB2(IBM)、Oracle(甲骨文)等;
* 中型关系型数据库(MB以上)----MySQL(甲骨文)、SQLServer(微软)等;
* 小型关系型数据库(MB以下)----Access、Sybase、informix等;
### 2.非关系型数据库:
常用的非关系型数据库有:memcached(文档)、mogodb(文档)、redis(键值对);
4、关系型数据库和非关系型数据库的区别
* 关系型数据库大部分都是收费的(除MySQL以外),开发成本高;非关系型数据库大部分都是不收费的,开发成本低;
* 关系型数据库中是以表格的形式来管理数据的;非非关系型数据库中不是以表格形式来管理数据的;
* 关系型数据库是处理硬盘数据的;非关系型数据库是处理内存数据的;
* 关系型数据库处理数据的速度比较低,会浪费很大硬盘空间;非关系型数据库处理数据的速度很快,不会浪费内存空间。
5、关系型数据库
关系型数据库是一个建立在数学关系模型上的数据库,关系模型中包含三个方面:
- 数据结构(表格)----用于解决数据的存储问题,关系型数据库中是以表格这种结构来处理数据的(表格是由表名和字段名组成的)。
- 数据库的操作指令集合(SQL语言)----用来操作数据的SQL代码,不同的数据库都是使用SQ语句来操作数据的;
- 数据的完整性约束----表内部数据约束、表和表之间的数据约束;
-
6、设计一个关系型数据库系统
设计一个关系型数据库只需要从数据中进行分析即可:如果是一类数据,应该设计成一张表格。
分析达内教学数据库系统:讲师负责教学、教学生、在教室教学生。
1、找出系统中应该存在的数据类别(表);**
讲师表、学生表、班级表
2、找出每张表中应该存在的数据;
讲师表----姓名、性别、年龄、授课方向、授课时长、授课费用;
学生表----姓名、性别、年龄、学习方向、学历、学号;
班级表----教室编号、班级名称、班级人数;
表内部数据约束
拿学生表来说:
姓名 | 性别 | 年龄 | 学习方向 | 学历 | 学号 |
---|---|---|---|---|---|
张三 | 男 | 25 | Java | 本科 | 1 |
李四 | 男 | ..... | 云计算 | 大专 | 2 |
小红 | 女 | 18 | WEB | 本科 | 3 |
学生表中的每一列字段只能存放对应的数据(数据类型和数据长度),如性别字段这一列只能存放男或女数据,表内部数据约束是纵向;
表和表之间的数据约束
拿学生表和班级表来说:每个学生只属于某一个班级(一对一约束),每个班级肯定有多个学生(一对多约束)。
学生表:
姓名 | 性别 | 年龄 | 学习方向 | 学历 | 学号 |
---|---|---|---|---|---|
张三 | 男 | 25 | Java | 本科 | 1 |
李四 | 男 | ..... | 云计算 | 大专 | 2 |
小红 | 女 | 18 | WEB | 本科 | 3 |
班级表:
教室编号 | 班级名称 | 班级人数 |
---|---|---|
第一教室 | CGB1904 | 25 |
第二教室 | NSD1905. | 30 |
第三教室 | BIG1906B | 28 |
第四教室 | CGB1908 | 25 |
综上所述,学生表和班级表之间没有数据约束存在,要想实现的话只需要实现一对一约束即可(在学生表中增加一个班级名称字段来指向唯一的班级)。
7、SQL语句
数据库的SQL语句分为四部分:
* DDL语句----数据定义语句,用来定义表格的。代笔指令:
create(创建表)、drop(删除表格)、alter(修改表格);
* DML语句----数据操作语句,用来操作表中数据的。代表指令:
insert(插入数据)、delete(删除数据)、update(修改数据)、select(查询数据)
* DCL语句----数据控制语句,用来操作数据库中用户权限的。代表指令:grant(授予用户权限)、revoke(撤销用户权限);
* TCL语句----事物控制语句,用来维护表中数据一致性的。TCL语句是配合insert、delete、update语句一起使用的,insert、delete和update语句在使用时必须配合TCL语句才会生效。代表指令:commit(提交)、rollback(撤销)、savepoint(保存点)
8.与数据库相关的专有名词
table:表格
DB:数据库,一个DB是由多个table组成的;
DBS:数据库系统,DBS是由DB和DBMS组成的;
DBMS:数据库管理系统软件,是专门管理DB的软件;
DBA:数据库管理员,DBA是数据库开发的一个职称,DBA是需要通过官方数据库机构(Oracle、微软、亚马逊、华为、联想)的资格认证考试才可以胜任的。
9、Oracle 数据库
9.1 Oracle 数据库的数据类型
(数据类型:number;字符串类型:char、varchar2;日期时间类型:date)
9.2、Oracle 数据库的安装和使用
Oracle数据库是一个服务器端软件,在使用Oracle之前先将Oracle数据库安装在服务器设备上,然后再使用sqldeveloper客户端软件去连接安装好的Oracle服务器。
9.3、DDL语句
9.3.1.创建表:create
.语法:
create table 表名(字段名1 数据类型,字段名2 数据类型,……);
注意:
1、小括号中的字段名之间必须用逗号隔开;
2、语句必须以分号结尾,分号代表SQL语句结束;
9.3.2、修改表
修改表名
语法:rename 旧表名 to 新表名;
修改字段名
语法:
alter table 表名 rename column 旧字段名 to 新字段名;
增加字段
语法:alter table 表名 add(字段名 数据类型);
删除字段
语法:alter table 表名 drop(字段名);
修改字段的数据长度
语法:alter table 表名 modify(字段名 数据类型);
注意:日期类型的字段不可以修改长度;若表中存在数据时,字段的长度只能增加。
修改字段的非空约束(not null)
修改字段的非空约束(not null)
修改字段的默认值(default)
语法:alter table 表名 modify(字段名 default 默认数据值);
注意:defaule语句左边是字段名,右边是默认数据值。字符串数据和日期数据必须用一对单引号括起来表示。
9.3.3、 删除表
语法:drop table 表名;
注意:若表中已经存在数据时,drop语句会一并将数据也删除。drop语句执行之后,表格是彻底从数据库中删除了。