Dawn's Blogs

分享技术 记录成长

0%

MySQL基础 (1) MySQL概述

关系型数据库

E-R (entity-relationship) 模型

E-R模型主要有三个概念:

  • 实体集:一个实体集对应一张表,表中的一行(记录)对应一个实体
  • 属性:对应于表的一列
  • 联系集
1
2
3
4
ORM思想(Object Relational Mapping,对象关系映射)
数据库中的一个表 <---> 一个类
表中的一条数据 <---> 类的一个对象
表中的一个列 <---> 类中的一个字段(field)

表的关联关系

表与表之间的关系,主要是四种关系:一对一、一对多、多对多、自我引用

一对一关系

  • 一个表中的一条记录,对应另一张表的一条记录。
  • 在实际开发中应用不多(可以将常用信息与非常用信息拆开成为两张表,形成一对一关系),因为可以制成一张表
  • 两种建表原则:
    • 外键唯一:主表的主键和从表的外键,形成主外键关系,外键唯一
    • 外键是主键:主表的主键和从表的主键,形成主外键关系

一对多关系

  • 常见关系:客户表和订单表,分类表和商品表,部门表和员工表,学生表和成绩表
  • 一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键

多对多关系

  • 要表示多对多的关系,必须 创建第三个表,称为联接表,将多对多关系划分为两个一对多关系,将这两个表的主键都插入第三个表中。
  • 例如:
    • 学生信息表、课程信息表、选课信息表(联接表):一个学生可以选多门课,一门课可以被多个学生选择
    • 产品表、订单表、订单明细表(联接表)

自我引用

SQL概述

SQL分类

SQL在功能上分为3大类:

  • DDL(Data Definite Language)数据定义语言:CREATE、ALTER、DROP、RENAME、TRUNCATE
  • DML(Data Manipulation Language)数据操作语言:INSERT、DELETE、UPDATE、SELECT(增删改查
  • DCL(Data Control Language)数据控制语言:COMMIT、ROOLBACK、SAVEPOINT、GRANT、REVOKE

DDL和DML的说明:

  • 回滚:
    • DDL的操作一旦执行,不可以回滚(在执行完DDL之后,一定执行一次COMMIT
    • DML的操作默认情况下,一旦执行,不可以回滚。但是再执行SET autocommit = FALSE,则执行DML后可以回滚

MySQL 8.0新特性:DDL的原子化,DDL操作要么成功要么回滚