初学者看完都能秒懂的_Mysql(四)

database

前面写了几篇前序学习,可以去先了解看看噢!! 此篇为续篇之终四,话不多说,上货!!

MySQL

一. 约束与策略

1.主键自增策略

通常情况下,主键基本都是id。

Id赋值:

    随机32位字符串:varchar(32)。。。Java写uuid进行赋值(Mybatis)

    整数,自动增长:int

 

 

我们通常希望在每次插入新记录时,数据库自动生成字段的值。

我们可以在表中使用 auto_increment(自动增长列)关键字.

 

自动增长列类型必须是整形

自动增长列必须为约束必须唯一(可以是唯一约束,可以是主键约束)。

 

 

二. 多表-建表

 

1. 为什么要用多表,一张表可以么?

大部分情况下,把所有数据合成一张表,可以的。

 

用多表原因:

   1、维护方便

   2、提升查询速度

 

2.​​​​​​​ 外键

外键:该字段将两个表的数据联系到一起。  可以描述表与表之间的关系

 

product 商品                                                                                 category 分类                                                   

 

 

 

 

主表:数据来源表

从表:数据引用表 (外键所在表)

 

外键特点

  1. 从表外键指向主表主键(从外指主主)
  2. 从表外键的数据类型和长度必须和主表主键数据类型和长度 保持一致

 

 

 

3.​​​​​​​ 外键约束

为什么要要用外键约束?

为了强制性保持主从表数据的完整性,需要使用外键约束

(约定:若尝试破坏数据的完整性,该操作就会被报错停止。)

数据完整性:从表外键,可以引入完整的主表数据

 

 

为了强制性保证

 

 

  • 声明外键约束:(是为从表添加

前提:当前的主从数据必须是完整的

alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);

 

特殊:

外键约束 不会对null作判断

若外键为null,该数据不会被外键约束  干扰

 

 

4.​​​​​​​ 多表关系-建表【重点】

通过外键进行连接

多表之间的数据关系分为 表与表之间数据的关系

  • 一对多
  • 多对多
  • 一对一

(1)一对多

  • 常见实例:分类和商品,客户和订单,部门和员工.
  • 一对多-建表原则:在多方创建一个外键,指向一方的主键。

 

 

(2)多对多

 

常见实例:学生和课程、商品和订单

多对多-建表原则:创建中间表,中间表中创建两个外键,分别指向两个表的主键.

 

 

 

(3)一对一

  • ​​​​​​​在实际的开发中应用不多.因为一对一可以合成一张表。例如:员工表和身份证表

 

  • 建表方式:
  • 外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique。

 

  • ​​​​​​​外键是主键:主表的主键和从表的主键,形成主外键关系。

 

 

 

总结:

约束:

主键约束:PRIMARY KEY      唯一,非空。 一个表只有一个

唯一约束:UNIQUE            唯一。   可以为null

非空约束:NOT NULL          非空。   可以重复

 

唯一+非空  =  主键约束

 

策略:

AUTO_INCREMENT

前提:

1、字段值类型必须是整数

2、字段必须加入约束:唯一约束/主键约束

主动赋值>自增值,自增值会改变, 自增值=主动赋值+1

主动赋值<自增值,自增值不会变

 

 

外键:把两个表的数据关联到一起。   表述表与表之间的关系。

 

主表:数据来源表

从表:数据引用表。 (外键所在表)

 

设置外键时,注意事项:从表外键 数据类型和长度 必须和 主表主键保持一致

 

 

外键约束:

强制保证外键数据完整性。

 

从主表删除,从表正在引用的数据。

向从表添加,主表不存在的数据

 

外键约束允许null

 

多表关系-建表:

一对多:在多方创建一个外键,指向一方主键

多对多:创建中间表,中间表上有两个外键分别指向两个表的主键。

一对一:合成一张表

 任意一方创建外键,指向另一方主键。 (外键加入唯一约束)

 两方的主键值相同,把任意一方的主键加入外键,形成主外键。

 

 

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

以上是 初学者看完都能秒懂的_Mysql(四) 的全部内容, 来源链接: utcz.com/z/533168.html

回到顶部