mysql约束pk_student_id_mysql约束

什么是mysql约束?

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

常见的额约束

|---主键约束:primary key

主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。

每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别创建。

当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。

1,复合主键:在一个数据表中通过多个字段作为主键来确定一条记录,那么,多个字段组成的就是复合主键

create tablestudent(

namevarchar(30) comment '姓名',

agesmallint comment '年龄',

sex enum('男','女') comment '性别',primary key(name,age)

)

55ddc24257922e4c9d43b96da1833b5e.png

2,联合主键:当两个数据表形成的是多对多的关系,那么需要通过两个数据表的主键来组成联合主键,就可以确定每个数据表的其中一条记录了

学生表:student-------------------

create tablestudent(

id mediumint auto_increment comment'主键id',

namevarchar(30) comment '姓名',

agesmallint comment '年龄',primary key(id)

)

engine=myisam,

charset=utf8,

comment= '学生'课程表:course---------------------

create tablecourse(

id mediumint auto_increment comment'主键id',

namevarchar(30) comment '课程名称',primary key(id)

)

engine=myisam,

charset=utf8,

comment= '课程'学生课程表:stu_cour---------------------------

create table IF NOT EXISTSstu_cour(

id mediumint auto_increment comment'主键id',

stu_id mediumint comment'学生表id',

cour_id mediumint comment'课程表id',primary key(id)

)

|---外键约束:外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系

1,外键使用规范:

1、从表的字段必须与外键类型同样(如上。分数表 stu 的类型必须和学生表 sid 的类型同样,比方都是 int(10) 类型)

2 外键必须是主表的唯一键(如上。学生表 sid 是主键,而主键是唯一的。所以能够作为分数表 stu 的外键)

3、有关联的字段(如上,分数表之所以使用学生表的 sid 是由于两者有关联,分数表记录的是学生的分数,而学生能够用 sid 来唯 一标识)

2,

FOREIGN KEY (从表字段) REFERENCES 主表 (字段)

alter table 从表表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

fa6f0373e569618be8315b97ac7dcfef.png

3,为什么说外键能保持数据的一致性、完整性:在设置外键的情况下。你插入从表的外键字段的值必需要求在主表的主键字段能找到。 同一时候。假设你要主表的主键字段。必须                                                                            保证从表中没有引用该字段值的列(也就是没有跟这一列建立外键),否则就没法删除。

|---唯一约束:

唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。

唯一约束不允许出现重复的值,但是可以为多个null。

同一个表可以有多个唯一约束,多个列组合的约束。

在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。

唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。

|---非空约束not null:

非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。

Null类型特征:

所有的类型的值都可以是null,包括int、float 等数据类型

|---默认值 default

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值