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语句执行之后,表格是彻底从数据库中删除了。