资讯动态

MySQL——表的约束

发布时间:2026/8/16 1:20:14 来源:尧图企业网站定制
一.概念真正约束字段的是数据类型但是数据类型约束很单一需要有一些额外的约束更好的保证数据的合****法性。表的约束表中一定要有各种约束通过约束让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术手段倒逼程序员去插入正确的数据。约束的最终目的就是保证数据的完整性和可预期性。二.非空约束非空约束有两个值null默认的和not null(不为空)。数据库中默认创建的字段如果不添加非空约束基本都是可以为空但是实际开发时有些字段可能被要求必须添加数据因此必须设置为非空。同时应该尽可能保证字段不为空因为数据为空没办法参与运算。设置非空约束需要在添加表格字段时在后边追加上“not null”。当某字段被设置非空后如果添加数据时未对该字段进行数据添加就会添加失败。三.默认值默认值某一种数据会经常性的出现某个具体的值可以在一开始就指定好在需要真实数据的时候用户可以选择性的使用默认值。设置默认值需要在字段后追加**“default 默认值”此后如果添加数据时未对该字段添加数据就会使用默认值去填充数据**。四.列描述列描述comment没有实际含义专门用来描述字段会根据表创建语句保存用来给程序员或DBA来进行了解。例如name varchar(20) not null comment ‘姓名’;五.主键1.单主键主键primary key用来唯一的约束该字段里面的数据不能重复不能为空一张表中最多只能有一个主键主键所在的列通常是整数类型。可以在创建表时即在字段后追加“primary key”设置该字段为主键字段。添加数据时主键字段不能为空也不能出现数据重复。创建表后如果没有设置主键字段同样可以追加设置alter table 表名 add primary key(字段列表)删除主键alter table 表名 drop primary key;2.复合主键MySQL规定一张表中主键只有一个但是这不代表主键只能是一个字段多个字段可以同时为主键称为复合主键。创建复合主键可以在创建表时通过“primary key(字段,字段…)”的方式例如primary key(id, class_room)注意必须是新的一行代码。也可以通过上述追加的方式创建alter table 表名 add primary key(字段,字段)注意如果已经存在一个单字段主键必须先删除该主键才能重新创建复合主键。复合主键中其单独的字段中数据可以重复但是多个字段组成的数据集中数据不能重复。例如先添加了一个(id,class_room)为(1,‘111’)的数据就不能添加第二个(1,‘111’)但是可以添加(1,‘112’)或(2,‘111’)。六.自增长auto_increment当对应的字段被设置自增长后如果不添加数据会自动的被系统触发系统会从当前字段中已经有的最大值1操作得到一个新的不同的值。必须和主键搭配使用作为逻辑主键。自增长的特点:任何一个字段要做自增长前提是本身是一个索引key一栏有值自增长字段必须是整数一张表最多只能有一个自增长自增长可以在创建表时直接在对应的主键字段后追加“auto_increment”。自增长默认会从1开始也可以在创建表时在最后追加**“auto_incrementxxx”**来设置自增长的初始值。在插入后获取上次插入的AUTO_INCREMENT的值批量插入时获取的是第一个值:select last_insert_id();七.唯一键一张表中有往往有很多字段需要唯一性数据不能重复但是一张表中只能有一个主键唯一键就可以解决表中有多个字段需要唯一性约束的问题。唯一键的本质和主键差不多唯一键允许为空而且可以多个为空空字段不做唯一性比较。创建唯一键可以在字段后追加**“unique” 。**八.外键外键用于定义主表和从表之间的关系外键约束是指一个相同的字段同时存在于两张表中比如学生表中存在一个“班级号字段”班级表中同样存在一个“班级号字段”通过该字段将两张表在逻辑上合二为一。其中外键约束字段要定义在从表上该字段在主表上则必须有主键约束或****unique 约束。当定义外键后要求外键列数据必须在主表的主键列存在或为null。创建外键需要在从表中定义下述语句foreign key (字段名) references 主表(列);一般来说主表要包含从表比如班级中包含学生所以班级表为主表学生表为从表。外键约束的主要作用外键约束主要是同时规范两张表格的数据准确性例如如果在班级表中只有班级id为101和102的两个班级那么在学生表中如果添加班级id为103的数据信息显然是不合常理的在外键约束下添加数据就会失败。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价