初学者看完都能秒懂的_Mysql(四)
前面写了几篇前序学习,可以去先了解看看噢!! 此篇为续篇之终四,话不多说,上货!!
MySQL
一. 约束与策略
1.主键自增策略
通常情况下,主键基本都是id。
Id赋值:
随机32位字符串:varchar(32)。。。Java写uuid进行赋值(Mybatis)
整数,自动增长:int
我们通常希望在每次插入新记录时,数据库自动生成字段的值。
我们可以在表中使用 auto_increment(自动增长列)关键字.
自动增长列类型必须是整形。
自动增长列必须为约束必须唯一(可以是唯一约束,可以是主键约束)。
二. 多表-建表
1. 为什么要用多表,一张表可以么?
大部分情况下,把所有数据合成一张表,可以的。
用多表原因:
1、维护方便
2、提升查询速度
2. 外键
外键:该字段将两个表的数据联系到一起。 可以描述表与表之间的关系
product 商品 category 分类
主表:数据来源表
从表:数据引用表 (外键所在表)
外键特点:
- 从表外键指向主表主键(从外指主主)
- 从表外键的数据类型和长度,必须和主表主键数据类型和长度 保持一致
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