MySQL数据库入门

MySQL数据库概述

  • 1,为什么要使用数据库
  • 2,数据库的相关概念
  • 3,常见的数据库管理系统
  • 4,MySQL介绍
  • 5,关系型数据库和非关系型数据库
  • 6,关系型数据库的设计规则
  • 7,表的关联关系
    • 7.1,一对一
    • 7.2,一对多
    • 7.3,多对多
    • 7.4,自我引用

1,为什么要使用数据库

使用数据库是为了对数据进行持久化。 若数据只存储在内存中,断电即失效。因此需要对数据进行持久化,常见的持久化方式如下:

  • 存储数据到文件(如:.doc、.java…)
  • 存储数据到数据库
  • 其他(如XML文件)

数据库可以存储海量的数据,并且可以存储很复杂的数据,因此具有突出优势。


2,数据库的相关概念

  • DB:数据库(DataBase)即存储数据的仓库,保存了一系列有组织的数据;
  • DBMS:数据库管理系统(DataBase Management System)是一种操纵和管理数据库的大型软件;
  • SQL:结构化查询语言(Structured Query Language),专门用来与数据库通信的语言。

3,常见的数据库管理系统

常见的主流数据库管理系统有:Oracle,MySQL,Microsoft SQL Server,Redis,MongoDB…

(当前排名如图所示,链接: https://db-engines.com/en/ranking)
MySQL数据库入门_第1张图片


4,MySQL介绍

MySQL数据库入门_第2张图片

  • MySQL是一个开源的关系型数据库管理系统,有体积小、速度快、成本低的优点;
  • MySQL两个里程碑式版本是5.7和8.0,目前5.7应用较为广泛;
  • MySQL 8.0是继5.7之后的又一里程碑版本,在功能上做出了显著的改进和增强;

5,关系型数据库和非关系型数据库

数据库管理系统可分为 关系型(RDBMS)非关系型(非RDBMS)。从数据库排名中可以看出关系型是DBMS的主流类型。
MySQL数据库入门_第3张图片

理解关系型数据库和非关系型数据库:

关系型数据库: 将复杂的数据结构归结为简单的二元关系(即二维表格形式),使用行和列的形式存储数据,以便用户理解;一系列的行和列被称为表(表与表之间的数据记录有关系),一组表组成一个库。SQL就是是关系型数据库的查询语言。

非关系型数据库:可以看作关系型数据库的阉割版本,通过减少一些不常用的功能,进一步提高性能。


6,关系型数据库的设计规则

  • 关系型数据库的典型数据结构是数据表,这些数据表的组成都是结构化的;
  • 数据放到表中,表再放到库中;
  • 数据库中多个表通过表名进行区分,数据库表名具有唯一性

  • 此外, 数据库表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和python中的 “类” 的设计。如下图:
    MySQL数据库入门_第4张图片
    ① 数据库中的一个表(table)对应Java或Python中的一个实体集(class);
    ② 数据库表中的一行(row)对应Java或Python中的一个实体(instance)或对象;
    ③ 数据库表中的一列(column),对应Java或Python中的一个属性(field)或字段;

    此即为编程领域著名的的ORM(对象关系映射)思想的体现。


7,表的关联关系

表与表之间的数据记录有关系。可分为四种:一对一、一对多、多对多、自我引用。


7.1,一对一

一对一关联,即表A中的一条记录对应表B中的一条记录。

举例:设计学生表:学号、姓名、手机号、班级、身份证号、住址、籍贯、紧急联系人…

  • 分为两个表,两个表中的记录为一一对应的关系。
  • 基础信息表 存放常用信息:学号、姓名、手机号、班级;
  • 档案信息表 存放不常用信息:学号、身份证号、住址、籍贯、紧急联系人…

一对一关联在实际开发中应用较少,因为分成两张表存在冗余信息,根据具体情况可以聚合所有字段创建成一张表。


7.2,一对多

一对多关联,即表A中的一条记录对应表B中的多条记录。

举例:客户表和订单表,分类表和商品表、部门表和员工表。

  • 一个客户可以对应多个订单;一个分类下可以有多种商品;一个部门里可以有多个员工;
  • 员工表:员工编号、姓名、…所属部门;
  • 部门表:部门编号、部门名称、部门简介;

7.3,多对多

要表示多对多关系,必须创建第三个表,该表通常称为联接表,联接表将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。如下图所示:
MySQL数据库入门_第5张图片

举例1:学生-课程 关系

  • 学生信息表:一行代表一个学生的信息(学号、姓名、手机号、班级);
  • 课程信息表:一行代表一个课程的信息(课程编号、授课老师、课程简介)
  • 选课信息表:此表作联接表。一个学生可以选择多门课程,一门课程可以对应被多个学生选择。
    MySQL数据库入门_第6张图片

举例2:产品-订单 关系

  • 订单表和产品表有一种多对多的关系。这种关系是通过与订单明细表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。
  • 产品表中每条记录对应一个产品;订单表中每条记录对应一个订单;
  • 订单明细表:每个产品可以与订单表中的多条记录对应,即出现在多个订单中。一个订单可以与产品表中的多条记录对应,即包含多个产品。
    MySQL数据库入门_第7张图片

7.4,自我引用

如下图例子所示,104号和105号员工的主管是103号员工(103号员工是员工,也担任主管)。
MySQL数据库入门_第8张图片

你可能感兴趣的:(MySQL数据库,数据库,mysql)