DQL语句上

1 关系型数据库

  • –表与表之间,可以建立关系;称之为主外键;

  • 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性
    1: int类型,自增
    2: varchar类型 , UUID
    3: 自定义(当前时间+时间戳+机器码+int自增序列) ; 适用于分布式系统

  • 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表.

  • 外键的使用需要满足下列的条件:

  1. 两张表必须都是InnoDB表,并且它们没有临时表。

注:InnoDB是数据库的引擎。MySQL常见引擎有两种:InnoDB和MyISAM,后者不支持外键。

  1. 建立外键关系的对应列必须具有相似的InnoDB内部数据类型。

  2. 建立外键关系的对应列必须建立了索引。

  3. 假如显式的给出了CONSTRAINT symbol,那symbol在数据库中必须是唯一的。假如没有显式的给出,InnoDB会自动的创建。
    DQL语句上
    DQL语句上例如:
    图书表和图书类别表 / 学生和班级表 / 部门和员工表 / 用户和图书和借阅关系

2 表之间的关系

2.1 一对一(一个人对应一张身份证)

1: A表的主键,是B表的外键;
2: A表的某个字段,是B表的外键,切设置了唯一索引;
DQL语句上
DQL语句上
DQL语句上

2.2 一对多(一个图书类别对应多本图书)

1: A表的某个字段,是B表的外键;
DQL语句上

2.3 多对多(老师和班级)

1: 一般通过第三方表来描述两个表之间的多对多的关系
DQL语句上
DQL语句上
DQL语句上