1 数据库原理
1.1 数据的时代
存在的原因
- 涉及的数据量大
- 数据不随程序的结束而消失
- 数据被多个应用程序共享
- 大数据
数据的分类
- 结构化的数据:即有固定格式和有限长度的数据 例如填的表格就是结构化的数据,国籍:中华人民共和国,民族:汉,性别:男,这都叫结构化数据
- 非结构化的数据:非结构化的数据越来越多,就是不定长、无固定格式的数据,例如网页,有时候非常长,有时候几句话就没了;例如语音,视频都是非结构化的数据
- 半结构化数据:比如:XML或者HTML的格式的数据
1.2 数据库基本概念
1.2.1 数据(Data)
描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录”形式按统一的格式进行存储
1.2.2 表
将不同的记录组织在一起
用来存储具体数据
1.2.3 数据库
表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合
2 数据库管理系统(DBMS)
数据库管理系统是实现对数据库资源有效组织、 管理和存取的系统软件。
2.1 功能
数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。
数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式 及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语 义的错误数据被输入或输出。
数据操纵功能:包括数据查询统计和数据更新两个方面。
数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。
通信功能:DBMS 与其他软件系统之间的通信,如 Access 能与其他 Office 组件进行 数据交换。
2.2 数据库系统
是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成。
用户可以通过DBMS或应用程序操作数据库。
2.3 数据库的分类
数据库分两大类,关系型数据库和非关系型数据库。
2.4 关系数据库 SQL
操作命令:SQL语句
存储结构:二维表格
存储的数据:结构化数据
库 -> 表 -> 二维表格形式的结构化数据
每一行称为一条记录,用来描述一个对象的信息;
每一列称为一个字段,用来描述对象的一个属性。
2.5 非关系数据库 NoSQL
- 存储结构:键值对 文档 索引 时间序列
- 缓存型 Redis Memcached
- 文档型 MongoDB
- 索引型 ElasticSearch
- 时序型 Prometheus InfluxDB
2.6 主键
主键(Primary Key)是一个数据库表中的一列或一组列,用于确保数据的唯一性和数据行的唯一标识。 在表中,主键的值是唯一的。
主键具有以下特点: 1)唯一性:主键列中的值必须是唯一的,每一行的主键值都不相同。 2)非空性:主键列的值不能为空,也就是不允许为空值或NULL值。 3)唯一标识性:主键用于识别和区分表中的不同行数据,通过主键可以快速定位和访问表中的数据。
主键还可以用于建立表与表之间的关系,实现数据的关联和连接操作。
3 MySQL数据库简介
3.1 什么是MySQL?
一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改
3.2 MySQL的特点
- 性能卓越、服务稳定
- 开源、无版权限制、成本低
- 多线程、多用户
- 基于C/S(客户端/服务器)架构
- 安全可靠
3.3 常用的数据类型
- int :整型 无符号[0,232-1],有符号[-231,2^31-1]
- float :单精度浮点 4字节32位
- double :双精度浮点 8字节64位
- char :固定长度的字符类型
- varchar :可变长度的字符类型
- text :文本
- image :图片
- decimal(5,2) :5个有效长度数字,小数点后面有2位
3.4 SQL语句
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。
SQL语言分类:
- DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
- DML:数据操纵语言,用于对表中的数据进行管理
- DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
- DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
3.5 MySQL的约束特性(六大约束)
- primary key(主键约束) 字段的值不能重复,且不能为null,一个表只能有一个唯一键
- uniq key(唯一性约束) 字段的值不能重复,可以为null,一个表可以有多个唯一键
- not null (非空约束) 字段的值不能为null
- default (默认值约束) 字段的值如果没有设置,则使用默认值自动填充
- auto_increment (自增约束) 字段的值如果没有设置,默认会从1开始,每次自动递增1,要求自增字段必须设置主键
- int(N) zerofill (零填充)
4 数据库管理系统的基本功能
- 数据定义
- 数据处理
- 数据安全
- 数据备份
5 数据库系统的架构
- 单机架构
- 大型主机/终端架构
- 主从式架构(C/S)
- 分布式架构
5.1 常用关系数据库
MySQL: MySQL, MariaDB, Percona Server
PostgreSQL: 简称为pgsql,EnterpriseDB
Oracle
MSSQL sql server
DB2 IBM
6 MySQL的三大主要分支
- mysql
- mariadb
- percona Server
版本演变
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 ----->6.0 - --->7.0 --> 8.0
MariaDB:5.1 -->5.5 -->10.0--> 10.1 --> 10.2 --> 10.3 --> 10.4 --> 10.5