数据库的约束
数据库约束
数据库对数据的合法性进行校验检查,避免数据库中被插入,修改一些非法的数据。
数据库约束类型
not null - 指示某列不能存储 null值
下图就是具体展示,未进行约束时可以进行填入null,约束之后就不能进行填入,会自动进行报错,此外就算对已有数据进行修改成null也是不行的,同样会报错。注意一点,不能再原表上就行更改约束,要重建一个表并进行约束。
不能进行修改为约束规定的情况
unique - 保证某列的每行必须有唯一的值
下图案列就可以看出unique就是和它的英文意思一样唯一的,意思是不能频繁插入下同的元素。unique 的使用会拖慢数据库的执行效率,因为每次执行unique都会先执行一次检查,检查是否出现相同。这样就会降低执行的效率。
default默认值用法
default 在插入时没有显式调用时,规定的默认值机会自动进行填补。下面的例子是,运用列插入,只进行了id列的插入,name列并未进行插入这个时候默认值就进行了自动填写。
primary key唯一标识符用法
primary key 确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。注意的是一个表中只能有一个primary key,有多个时无法判断以谁为准。虽然主键只有一个但是不意味着只有一个列有主键,可以通过联合主键(多个列公用一个主键)。
primary key==unique与not null的结合?
下图实现的是primary的功能,可以出id的列的null显示是not意思是不能为空,key是PRI这里是唯一的意思,因此说primary key是unique与not null的结合。带有主键也是先查询后执行,效率低,但是数据库会对unique和primary自动生成索引进而调高效率。
如何使用数据库为主键自动赋值
使用 auto_increment可以为主键自动赋值,这里插入时写入的null并不是写进去null,而是表示为输入自动调用数据库服务器的使其自动赋值。
foreign key外键
foreign key (字段名) references 主表(列)
foreign key外键用于描述两个表之间的关联关系。用外键进行约束,内建在不满足外键的情况下就会显示错误。补充:使用外键约束的时候,只对使用的进行约束,意味着可以改变一个表中未使用的列,也是不会报错的。
未用主键进行约束
外键约束是通过主键或者unique,当父表或者子表有一个没进行设置主键就会显示添加外键约束,其次就是当子表和父表的约束一定是基于主键,不是相同的主键也是会显示这种错误的。
外键约束中如何进行删除父表
父表和子表是相互密切联系,子表是参考父表的,因此要先删除子表再删除父表,另外再子表为null时删除父表也会显示错误的。