FOREIGN KEY 外键约束 用于限制主表与从表数据完整性。...外键关联到表t2的id字段。...主表数据被更新(主键值更新),从表的外键被设置为null。主表记录被删除,从表相关记录外键被设置成null。但注意,要求该外键列,没有not null属性约束。...-| select max(height) into @max_height from tb; -- 自定义变量名 为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用...,并且不应该与已有的关键字冲突。
主键 - 能唯一标识记录的字段,可以作为主键。 - 一个表只能有一个主键。 - 主键具有唯一性。 - 声明字段时,用 primary key 标识。...int ) comment '注释内容'; 7. foreign key 外键约束 用于限制主表与从表数据完整性。...alter table t1 add constraint `t1_t2_fk` foreign key (t1_id) references t2(id); -- 将表t1的t1_id外键关联到表t2...-| select max(height) into @max_height from tb; -- 自定义变量名 为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用...,并且不应该与已有的关键字冲突。
foreign key 外键约束 用于限制主表与从表数据完整性。...alter table t1 add constraint `t1_t2_fk` foreign key (t1_id) references t2(id); -- 将表t1的t1_id外键关联到表...主表数据被更新(主键值更新),从表的外键被设置为null。主表记录被删除,从表相关记录外键被设置成null。但注意,要求该外键列,没有not null属性约束。...用户自己定义的变量与系统标识符(一般是字段名)冲突,用户自己定义变量在变量名前使用@作为開始符号。...,而且不应该与已有的keyword冲突。
FOREIGN KEY 外键约束 用于限制主表与从表数据完整性。 ...外键关联到表t2的id字段。 ...主表数据被更新(主键值更新),从表的外键被设置为null。主表记录被删除,从表相关记录外键被设置成null。但注意,要求该外键列,没有not null属性约束。 ...-| select max(height) into @max_height from tb; -- 自定义变量名 为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用...,并且不应该与已有的关键字冲突。
FOREIGN KEY 外键约束 用于限制主表与从表数据完整性。...alter table t1 add constraint `t1_t2_fk` foreign key (t1_id) references t2(id); -- 将表t1的t1_id外键关联到表...主表数据被更新(主键值更新),从表的外键被设置为null。主表记录被删除,从表相关记录外键被设置成null。但注意,要求该外键列,没有not null属性约束。...-| select max(height) into @max_height from tb;-- 自定义变量名为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用...,并且不应该与已有的关键字冲突。
INSERT INTO WHITETEST (TEST , ID) VALUES ( NULL , 13) 在数据仓库中我们执行上述语句,会返回如下结果: [1240] 因为列限制了TEST不为空,因此数据无法更新...INSERT INTO WHITETEST (TEST , ID) VALUES ( 16 , 13) 结果如下: [1240] [1240] 我们可以清楚的看到,数据插入成功。...B.UNIQUE与PRIMARY KEY UNIQUE会约束列的数据作为唯一标识而存在。 PRIMARY KEY作为表的主键而存在。 注意 UNIQUE与PRIMARY KEY区别是很大的。...//多个列定义约束 ...... ) C.FOREIGN KEY 一个表中的外键,通常可以用来连接另外一张表中的主键。...那么Product表中的ProductID就是主键,Fact表中的ProductID就是外键。 同时,外键的存在,可以防止意外删除。这对于数据仓库来说,很重要。
主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。...因为它还有了额外的属性。 主键 用户选择的候选键作为该元组的唯一标识,那么它就为主键。简单的说,例子中的元组的候选键为学号,但是我们选定他作为该元组的唯一标识,那么学号就为主键。...外键 外键是相对于主键的,比如在学生记录里,主键为学号,在成绩单表中也有学号字段,因此学号为成绩单表的外键,为学生表的主键。所以,主键为候选键的子集,候选键为超键的子集,而外键的确定是相对于主键的。...此时例外一个事务新插入了一条 id=11 的数据,因为是新插入的,所以不会触发上面的锁的排斥,那么进行本事务进行下一次的查询时会发现有一条id=11的数据,而上次的查询操作并没有获取到,再进行插入就会有主键冲突的问题...与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
同一个项目,很多人参与了需求的分析,数据库的设计,不同的人具有不同的想法,不同的部门具有不同的业务需求,我们以此设计的数据库将不可避免的包含大量相同的数据,在结构上也有可能产生冲突,在开发中造成不便。...这里的班级编号就是外键,可以空,但不为空时他的值一定在要引用表中存在。如果学生表中的编号是主键这里就不应该重复,外键则可以重复也允许为空。 添加外键: 班级表: ? 学生表: ? 添加外键: ?...外键关联到表t2的id字段。...-| select max(height) into @max_height from tb; -- 自定义变量名 为了避免select语句中,用户自定义的变量与系统标识符(通常是字段名)冲突,用户自定义变量在变量名前使用...,并且不应该与已有的关键字冲突。
领取专属 10元无门槛券
手把手带您无忧上云