数据库的约束

数据库的约束注 若将一个表中的自增的这几行删除 再次添加数据 则自增从被删除的下一个数字开始 不会再从一开始自增 因为自增的数字被使用了 另外在自增时 若手动设置一个标识符 注意设置在自增数字之后的数字

大家好,欢迎来到IT知识分享网。

//数据库的约束

  约束是针对于数据库中输入数据时进行作用,进而限制输入的内容的范围。

数据库中的几类约束—约束是在创建表时针对列进行约束,在输入/修改数据时进行限制

 1.not null—-约束列是否为空

     not null的使用

数据库的约束

    表示在str表中进行输入数据时,a列不能为空

 数据库的约束

   通过观察表的结构,可知在NULL(是否可为空)处,为NO,表示此列不能为空

2.unique—-约束输入/修改列中值时是否唯一存在

数据库的约束

     由此图可知,当在stm表中的a列重复输入1时,会报错,Duplicate entry ‘1’ for key ‘a’ 表示重复的1被输入到被key(键)修饰的a的列中

数据库的约束

 通过观察stm表的结构,可知在Key处为UNI ,UNI表示唯一约束键

3.default—-设置列的默认值

数据库的约束

   可知未进行default操作的表未进行输入值时,默认值为null

数据库的约束

  在创建表示,通过default对列进行约束,将a列的默认值修改为0,将b列的默认值修改为h

4.PRIMARY KEY—主键,在表中用于对行进行‘身份标识’操作

   在表中的每一条行都是一条记录,例如在表中输入人的信息时,创建一个有两列的表,一列为人名,一列为身份证号码,身份证号码即可作为人的身份标识(身份标识必须是唯一的(一定存在,且一定不重复)),所以主键也可视为具有unique+not null的功能

数据库的约束

   PRI表示为主键约束

  注意一个表中只能有一个主键数据库的约束

 在上述设置主键时,各行的标识符都是通过设计者自己输入的,但也可让系统自动生成,通过在primary key后加auto_increment关键字表示该主键是一个自增主键

数据库的约束

 自增主键默认从1开始增加,每次加1

数据库的约束

注:若将一个表中的自增的这几行删除,再次添加数据,则自增从被删除的下一个数字开始,不会再从一开始自增,因为自增的数字被使用了,另外在自增时,若手动设置一个标识符(注意设置在自增数字之后的数字,若下述图设置1标识符,则自增是从6开始自增),则之后的自增从手动标识符开始向后自增

数据库的约束

数据库的约束

若该列被自增主键修饰,则在输入数据时在对应位置输入null,即表示让系统对该列进行自增

5. foreign key 外键—用于对不同表之间进行约束

  外键的使用

数据库的约束

数据库的约束

注意外键的使用与其他约束键使用的区别:外键是在创建表的所有列之后进行声明的,foreign key (列名)  references 表名 (列名) ,表明该表的(列名)被references后的 表名的(列名)所约束

此处students表的中的classId列被class表中的classId列所约束,通过外键将两表中的classId列与classId列进行联系

students受到class的约束,就把class叫做students的父表(parent),students就是class的子表(child)

数据库的约束

数据库的约束

此行数据可被成功输入,因为创建students表时,该表被外键修饰的列所要输入的数据必须要属于父表中被关联的列中的数据,该图中输入子表对应的classId列的数据1在父表classId中存在,所以可成功输入

数据库的约束

该图中输入子表对应的classId列的数据4在父表classId中不存在,所以报错

在子表中输入/修改关于被外键联系的列的数据时,首先会判断所操作的被外键联系的列的数据是否在父表中被联系的该列中存在,若存在,则可成功进行操作,否则报错,对于输入/修改没被外键联系的列的数据时,则无影响

对于父表和子表,若要修改父表中被外键关联的列的数据时,若在子表中被外键关联的列中包含父表相关列的数据时,则父表中被包含数据的行的相关列数据不能修改

举例:

数据库的约束

数据库的约束

在子表中被外键关联的列中包含父表相关列classId为1的数据,所以在修改父表时,若修改关于classId=1的行中classId的值会报错,但若修改className则无影响

数据库的约束

在子表中被外键关联的列中包含父表相关列classId为1的数据,在修改父表时,若修改不包含classId=1行的列的数据,则可行

注意:在使用外键时,子表中被关联的列要被unique或primary key约束(确保唯一性),否则无法使用外键

 子表中被关联的列未确保唯一性

数据库的约束

子表中被关联的列通过unique确保唯一性

数据库的约束

子表中被关联的列通过primary key确保唯一性

数据库的约束

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150789.html

(0)
上一篇 2025-03-17 12:20
下一篇 2025-03-17 12:25

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信