TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构MySqul约束多表设计思维导图

MySqul约束多表设计思维导图

  收藏
  分享
免费下载
免费使用文件
灰色と青 浏览量:42023-11-30 19:58:39
已被使用0次
查看详情MySqul约束多表设计思维导图

多表设计与约束相关内容整理

树图思维导图提供 MySqul约束多表设计 在线思维导图免费制作,点击“编辑”按钮,可对 MySqul约束多表设计  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:8b76f67f6293f22afea9202b8f18f6b2

思维导图大纲

MySqul03-约束,多表设计思维导图模板大纲

约束

1:概念:对表中的列(字段)的数据进行规则限定,保证数据的完整性和一致性。

完整性:

比如说, 一个用户表里面要存储用户的相关信息, 但是用户提交的时候, 手机号没有填写, 这 样直接插入数据库,就导致这条信息不够完整,有数据缺失, 为了保证数据完整,我就需要对重 要的信息字段加上约束,保证完整性.

一致性:

比如多张表进行信息关联的时候,第一张表的某些数据需要和另外一张表信息进行关联, 如果 两张表信息不一致,到时数据混乱,所以需要有约束,来保证数据的一致性.

约束的分类

primary key

主键约束,表明是主键

auto_increment

自动增长

unique

唯一约束

not null

非空约束

default

默认值约束

check

检查约束

foreign key

外键约束

主键+自增 约束

主键约束特点

主键约束包含非空和唯一两个功能

一张表只能有一个列作为主键

主键一般用于表中数据的唯一标识(id列(字段))

自增约束特点

一个表中只能由一个列使用自增约束

使用自增约束的列必须是主键

示例 主键约束和自增约束一般在建表的时候进行设置

使用alter 更新主键自增约束: alter table product modify id int(10) primary key auto_increment;

删除主键约束:!!! alter table product drop primary key;

唯一约束

特点:表的每条记录中使用的唯一约束的列的值必须唯一!!!

-- 方式一:建表时设置唯一约束

-- 方式二:表创建出来之后,使用alter更新表设置唯一约束

alter table good modify productnum int unique

删除唯一约束:!! alter table good drop index productnum;

非空约束

使用非空约束的列值不能为null;

默认值约束

默认值约束特点 当插入一个新行到表中时,没有给该列明确赋值,将自动得到默认值

检查约束

检查约束特点:用来设置列的限定条件,当增加修改,该列数据时,mysql会检查是否符合check约束的条件,符合可以操作,并不符合不能操作

--删除检查约束: alter table computer drop constrant computer_chk_1;

--增加检查约束: alter table computer add constrant computer_chk_1 check(count>10 and count<100);

外键约束

外键约束特点:

如果两个表的数据有相关联记录,可以让表和表之间产生关系,从而保证数据的准确性!

一般在进行多表关系设置时进行使用

方式二:表创建出来后,使用alter更新表设置外键约束

alter table card add constraint cp_fk1 foreign key(pid) references person(id);

删除外键约束: alter table card drop foreign key cp_fk1;

多表设计

在实际工作中,如果将数据都存储到一张表中,字段之间如果部署同一类信息,就会产生大量数据冗余,导致数据库性能较低;

一对一关系

在任意一个表建立外键,去关联另外一个表的主键

表现形式:person中的每一条记录都适合card表中的记录一一对应,通过外键约束建立联系;

一对多/多对一关系

实现原则: 再多的一方,建立外键约束,来关联另一方的主键;

一对多的外键约束,必须再多的一方进行设置外键

orderlist表中的多个记录和user表中的一条记录对应, orderlist和user表通过外键约束关联,多对一

user表中的一条记录和orderlist表中的多个记录对应,user表和orderlist表通过外键约束进行关联,一对多;

多对多关系

实现原则:需要借助第三张表中间表,中间表至少要包含两个列 这两个列为作为中间表的外键,分别关联两张表的主键;

多表关联查询

表关联查询就是从多张表中查询到想要的数据

多表查询数据准备

内连接查询

内连接查询的时两张表有交集的部分数据 (有主外键关联的数据);

-- 案例:查询用户信息及用户所拥有的订单信息 select * from user,orders where user.id=order.uid;

案例:查询张三和李四这两个用户可以看到的商品。显示用户的编号、姓名、年龄。 商品名称 select u.id,u,name,g,name from user u,godds g, user_goods ug where ug.uid=u.id and ug.gid=g.id and u. name in('张三','李四');

-- 显示内连接写法 SELECT u.id id,u.name name,u.age age,o.id oid,o.number number,o.uid uid FROM user u INNER JOIN orders o on u.id=o.uid;

外连接查询

左外连接

查询原理:查询左表的全部数据,和左右表两张表有交集部分的数据;

-- 案例:查询用户年龄大于23岁的信息。显示用户的编号、姓名、年龄。订单编号 SELECT u.id, u. NAME, u.age, o.number FROM USER u LEFT OUTER JOIN orders o ON u.id = o.uid WHERE u.age > 23;

右外连接

联合查询(union,unionall)

查询原理:两个不相关的表,联合查数据,可以使用union语句, 但是使用Union的前提是两个表的查询列数一致!!!

union 会自动去重 union all 不会去重!!!

相关思维导图模板

第1章	化工设计基本知识思维导图

树图思维导图提供 第1章 化工设计基本知识 在线思维导图免费制作,点击“编辑”按钮,可对 第1章 化工设计基本知识  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:70ec0519ed26419068a32a511862aadd

辊压断带分析思维导图

树图思维导图提供 辊压断带分析 在线思维导图免费制作,点击“编辑”按钮,可对 辊压断带分析  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:55fdf0827fa2a220b0b4047d75df5032