首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

多表间的关系-一对多-多对多-一对一-外键约束

多表间的关系-一对多-多对多-一对一-外键约束 1. 关系概述 现实生活,实体与实体之间肯定是有关系的,比如:老公和老婆,部门和员工,用户和订单、订单和商品、学生和课程等等。...那么我们设计的时候,就应该体现出之间的这种关系!...之间的关系分成三种: 一对一 (老公和老婆) 一对多 (部门和员工, 用户和订单) 多对多 (学生和课程) 例如: 双11当天,马哥和东哥两个用户分别在淘宝上下了一些订单,已知马哥下了...一对一 一对一(1:1) 实际的开发应用不多.因为一对一可以创建成一张。...外键约束 5.1 什么是外键约束 一张的某个字段引用另一个的主键 主表:约束别人 副/从:使用别人的数据,被别人约束 5.2 创建外键 新建时增加外键:[CONSTRAINT] [外键约束名称

5.6K20

【愚公系列】2023年03月 Java教学课程 101-MySQL数据库(多表设计)

文章目录 一、多表设计 1.一对一 2.一对多 3.多对多 ---- 一、多表设计 多表设计是指在关系型数据库,将数据分散到多个,以实现更好的数据管理和查询效率。...多表设计,需要考虑以下几个方面: 数据库范式:设计时需要满足数据库的范式要求,以避免数据冗余和重复。 之间的关系:需要确定之间的关系,包括一对一、一对多、多对多等关系。...实现原则 多的一方,建立外键约束,来关联一的一方主键 SQL演示 /* 用户和订单 */ -- 创建user CREATE TABLE USER( id INT PRIMARY KEY...实现原则 需要借助第三张中间,中间至少包含两个列,这两个列作为中间的外键,分别关联两张的主键 SQL演示 -- 创建student CREATE TABLE student( id..., -- 用于和course的id进行外键关联 CONSTRAINT sc_fk1 FOREIGN KEY (sid) REFERENCES student(id), -- 添加外键约束 CONSTRAINT

32100
您找到你想要的搜索结果了吗?
是的
没有找到

数据库_mysql多表操作

l 多对多关系: n 常见实例:学生和课程、用户和角色 n 多对多关系原则:需要创建第三张,中间至少两个字段,这两个字段分别作为外键指向各自一方的主键. ?...l 一对一关系:(了解) n 实际的开发应用不多.因为一对一可以创建成一张. n 两种建原则: u 外键唯一:主表的主键和从的外键(唯一),形成主外键关系,外键唯一unique。...1.2 外键约束 现在我们有两张“分类”和“商品”,为了表明商品属于哪个分类,通常情况下,我们将在商品上添加一列,用于存放分类cid的信息,此列称为:外键 ? ?...]用于删除外键约束的,一般建议“_fk”结尾 altertable 从 drop foreignkey 外键名称 l 使用外键目的: n 保证数据完整性 1.3 一对多操作 1.3.1 分析...; ###---- 订单和订单项的主外键关系 alter table `orderitem` add constraintorderitem_orders_fk foreign key (oid)

2.2K80

MySQL复习笔记(2)-约束

时添加约束 CREATE TABLE 名 ( 字段名 字段类型 PRIMARY KEY, 字段名 字段类型 ); 已有添加约束 ALTER TABLE 名 ADD PRIMARY...=起始值; 唯一约束 字段的值不能重复 字段名 字段类型 UNIQUE 非空约束 字段的值不能为NULL 字段名 字段类型 NOT NULL 默认值约束 不指定这个字段的数据,就使用默认值 字段名...-- 外键约束名: fk开头, fk结尾 关键字释义 CONSTRAINT: 表示建立外键约束 FOREIGN KEY(外键字段名): 让哪个字段作为外键 REFERENCES 主表名(主键字段名)...: 参照哪个哪个字段 已有增加外键 ALTER TABLE 名 ADD CONSTRAINT 外键约束名 FOREIGN KEY(外键字段名) REFERENCES 主表(主键); 删除外键约束...CASCADE ); 关系概念 一对一 实际的开发应用不多.因为一对一可以创建成一张

87520

【愚公系列】2022年01月 Mysql数据库-结构和关系的设计

文章目录 一、多表设计 1.一对一 2.一对多 3.多对多 二、其他 1.中间 2.临时 一、多表设计 1.一对一 分析 人和身份证。一个人只有一个身份证,一个身份证只能对应一个人!...实现原则 多的一方,建立外键约束,来关联一的一方主键 SQL演示 /* 用户和订单 */ -- 创建user CREATE TABLE USER( id INT PRIMARY KEY..., -- 用于和course的id进行外键关联 CONSTRAINT sc_fk1 FOREIGN KEY (sid) REFERENCES student(id), -- 添加外键约束 CONSTRAINT...(NULL,1,1),(NULL,1,2),(NULL,2,1),(NULL,2,2); 图解 二、其他 1.中间 中间是针对多对多关系的。...临时是放在系统数据库 tempdb的,而不是当前数据库。 临时分两种:本地临时和全局临时。 a.本地临时 本地临时是以#开头的,只对当前的数据库用户可见,而其他的用户是不可见的。

72630

数据库一对一、一对多、多对多怎么设计关系

1、一对一可以两个实体设计一个数据库l例如设计一个夫妻,里面放丈夫和妻子 2、一对多可以建两张,将一这一方的主键作为多那一方的外键,例如一个学生可以加一个字段指向班级(班级与学生一对多的关系...) 3、多对多可以多加一张中间,将另外两个的主键放到这个(如教师和学生就是多对多的关系) ---- 关于外键的设置: 首先,外键引用的那个列主表必须是主键列或者唯一列。...所以1:n的肯定把外键建立n的那张上。 1:1,一般要看谁是主表,谁是附属,外键当然建立附属。...n:m的情况,需要建立一个关系,两个原和其关系分别是1:n,1:m ---- 关于主外键及多表联系的进一步理解: 主外键的存在是依托两个实体之间的关系而存在的; 比如班级与学生的关系: 一个班级可以有多个学生...) references class(classid) --本classid是基于classclassid的外键 ) --------- 如上定义了主外键后,两个间的关系就是一对多的关系了,

4.6K20

【MySQL数据库】多表关系与多表联合查询

目录 MySQL多表关系 一对一 一对多 多对多 MySQL外键约束 创建外键 数据插入 删除 多表联合查询 交叉连接查询 内连接查询 外连接查询 子查询关键字 自关联 MySQL多表关系 MySQL...之间的三种关系 一对多关系:最常见的关系:学生对班级 , 员工对部门 多对多关系:学生与课程 , 用户与角色 一对一关系:使用较少,因为一对一关系可以合成为一张 一对一  一个学生对应一个身份证号码...一对多 一个部门可以有多名员工,但一个员工只能归于一个部门 多的一方建立外外键指向一的一方 多对多 下表为多对多关系,由下表可知多对多关系的中间至少需要2个外键...,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,通俗一点就是包含select嵌套的查询。...IN IN关键字,用于判断某个记录的值,是否指定的集合 IN关键字前边加上not可以将条件反过来 select …from …where c > in(查询语句) --等价于: select

2.7K20

【MySQL数据库】多表关系与多表联合查询

​​目录MySQL多表关系一对一一对多多对多MySQL外键约束创建外键数据插入删除多表联合查询交叉连接查询内连接查询外连接查询子查询关键字自关联MySQL多表关系MySQL之间的三种关系一对多关系...:最常见的关系:学生对班级 , 员工对部门多对多关系:学生与课程 , 用户与角色一对一关系:使用较少,因为一对一关系可以合成为一张一对一 一个学生对应一个身份证号码 一对多一个部门可以有多名员工,但一个员工只能归于一个部门...多的一方建立外外键指向一的一方​编辑多对多 下表为多对多关系,由下表可知多对多关系的中间至少需要2个外键​编辑 MySQL外键约束创建外键 格式: constraint foreign...,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,通俗一点就是包含select嵌套的查询。...查询语句)--等价于:select ...from ... where c > result1 or c > result2 or c > result3...ININ关键字,用于判断某个记录的值,是否指定的集合

2.9K30

MySQL数据查询之多表查询

2.主键约束 用于约束的一行,作为这一行的标识符,一张通过主键就能准确定位到一行,因此主键十分重要。...#分析步骤: #多对一 /一对多 #1.站在左的角度去看右(情况一) 如果左的一条记录,对应右多条记录.那么他们的关系则为 一对多 关系.约束关系为:左普通字段, 对应右foreign...#一对一 #2.站在左的角度去看右(情况二) 如果左的一条记录 对应 右的一条记录. 则关系一对一关系....其他示例 2.一对一关系 例如:一个中国公民只能有一个身份证信息 分析: 一对一关系实际上是 变异了的 一对多关系....通过在从的外键字段上添加唯一约束(unique)来实现一对一关系.

8.1K20

MySQL之多表查询

2.主键约束  用于约束的一行,作为这一行的标识符,一张通过主键就能准确定位到一行,因此主键十分重要。...,如果被DEFAULT约束的位置没有值,那么这个位置将会被DEFAULT的值填充   九.之间的关系 1.关系分类:   总体可以分为三类: 一对一 、一对多(多对一) 、多对多 2.如何区分之间是什么关系...#分析步骤: #多对一 /一对多 #1.站在左的角度去看右(情况一) 如果左的一条记录,对应右多条记录.那么他们的关系则为 一对多 关系.约束关系为:左普通字段, 对应右foreign...#一对一 #2.站在左的角度去看右(情况二) 如果左的一条记录 对应 右的一条记录. 则关系一对一关系....通过在从的外键字段上添加唯一约束(unique)来实现一对一关系. ?

8.5K120

day05_MySQL学习笔记_02

SQL PK、UK、DF、CK、FK 的意思:     --主键约束 PK         外修改:alter table xxx add constraint PK_字段 primary key...如:len(字段)>1);         修改:constraint CK_字段 check(约束。如:len(字段)>1),         修改:字段 字段类型 check(约束。...key(qqid) references QQDetail(qqid);       注意:虽然是一对一,但是维护关系不一样,那么主从关系也不一样。...(也就是说仍然有主从关系) ?     一对多(多对一):       最为常见的就是一对多!一对多和多对一,这是从哪个角度去看或者说以谁为参照物。  ...但要注意,脚本文本包含数据库的内容,而不会存在创建数据库的语句,所以恢复数据时,还需要自已手动创建一个数据库之后再去恢复数据。

2.1K20

【MySQL】多表练习、查询以及多表的关系

一对一关系:(了解) 实际的开发应用不多.因为一对一可以创建成一张.如果非要设计成一对一关系,多半是为了解耦,提高灵活度.如QQ号跟QQ信息详情,会员信息跟用户信息 二、多表入门案例...外键约束声明: 语法1:FOREIGN KEY (自己列名) REFERENCES 主表名 (主表列); 创建从的时候 直接在建表语句中添加上述格式 语法2:alter table 从 add [...,如果再向商品插入数据,要注意数据的categroy_id字段值要跟category的cid值相对应,如果插入的category_id,category的cid没有对应则无法插入成功....删除外键: ALTER TABLE product DROP FOREIGN KEY product_fk 删除之后,product 就没有外键约束了 常见操作 观察下面语句的执行效果 #1 向分类添加数据...一对一关系:(了解) 实际的开发应用不多.因为一对一可以创建成一张. 两种建原则: 外键唯一:主表的主键和从的外键(唯一),形成主外键关系,外键唯一unique。

2.5K20

【SSH快速进阶】——Hibernate一对一映射(one-to-one)——主键关联映射

https://blog.csdn.net/huyuyang6688/article/details/50219961   现实生活,有很多场景需要用到一对一映射,比如每个学生只有一个学生证,...Hibernate实现一对一映射,有两种实现方式:1、主键关联;2、唯一外键关联,这里先说一下主键关联映射。   ...主键关联映射:其中一个的主键依赖于另一张的主键而建立起的一对一关系,这两张互相关联的的主键一致。   关联映射又可细分为单向关联映射和双向关联映射。...constrained=”true”表示t_person的主键上同时有个外键指向被关联的(t_idCard)的主键,会对表t_person创建约束约束t_person的id只能跟idCard的主键一样...运行程序,实际执行的sql语句如下,除了创建两张,还为t_person创建了约束: alter table t_person drop foreign key FK785BED803EEB3F3E

51020

MySQL常用基础 - 小白必看

值,字段名=值,字段名=值.....where 条件; -- 指定修改 三:约束 概念:实际上就是数据的限制条件 作用:设计的时候加入约束的目的,就是为了保证的记录完整性和有效性 约束分类:...定义:外键约束的一个特殊字段,经常和主键约束一起使用,对于两个具有关联关系来说,相关字段主所在就是主表(父),外键所在就是从(子表) 特点(定义一个外键时,需要遵守的规则): 主表必须已经存在于数据库...,或者是当前正在创建的 必须为主表定义主键 主键不能包含空值,但是允许在外键中出现空值,也就是说,只要外键的每个非空值出现在指定的主键,那么这个外键的内容就是正确的 主表的名后面指定列名或列名的组合...多表之间的关系:MySQL多表之间的关系可以概括为:一对一,一对多,多对一,多对多 一对一关系: 实现:在任意表添加唯一外键,指向另一方主键,确保一对一关系(少见,遇见了就合并) 一对多/多对一关系...: 例如:部门和员工 一个部门有多个员工,一个员工只能对应一个部门 实现:多的一方建立外键,指向一的一方的主键 多对多关系: 例如:学生和课程 实现:需要借助第三张中间,中间至少包含两个字段,将多对多的关系拆成一对多的关系

1.2K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券