关系型数据库
E-R (entity-relationship) 模型
E-R模型主要有三个概念:
- 实体集:一个实体集对应一张表,表中的一行(记录)对应一个实体
- 属性:对应于表的一列
- 联系集
1 | ORM思想(Object Relational Mapping,对象关系映射) |
表的关联关系
表与表之间的关系,主要是四种关系:一对一、一对多、多对多、自我引用
一对一关系
- 一个表中的一条记录,对应另一张表的一条记录。
- 在实际开发中应用不多(可以将常用信息与非常用信息拆开成为两张表,形成一对一关系),因为可以制成一张表。
- 两种建表原则:
- 外键唯一:主表的主键和从表的外键,形成主外键关系,外键唯一
- 外键是主键:主表的主键和从表的主键,形成主外键关系
一对多关系
- 常见关系:客户表和订单表,分类表和商品表,部门表和员工表,学生表和成绩表
- 一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
多对多关系
- 要表示多对多的关系,必须 创建第三个表,称为联接表,将多对多关系划分为两个一对多关系,将这两个表的主键都插入第三个表中。
- 例如:
- 学生信息表、课程信息表、选课信息表(联接表):一个学生可以选多门课,一门课可以被多个学生选择
- 产品表、订单表、订单明细表(联接表)
自我引用
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后可以回滚
- DDL的操作一旦执行,不可以回滚(在执行完DDL之后,一定执行一次
MySQL 8.0新特性:DDL的原子化,DDL操作要么成功要么回滚。