MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。常用五类约束:’’notnull:非空约束,指定某列不为空unique:唯一约束,指定某列和几列组合的数据不能重复Primarykey:主键约束,指定某列的数据不能重复、唯一foreignkey:外键,指定该列记录属于主表中的一条记录,参照另一条数据check:检查,指定一个表达式,用于检验指定数据注意:MySQL不支持check约束,但可以使用check约束,而没有任何效果;根据约束数据列限制,约束可分为:单列约束:每个约束只约束一列多列约束:每个约束约束多列数据1、notnull约束非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。Null类型特征:所有的类型的值都可以是null,包括int、float等数据类型空字符串””是不等于null,也不等于nullcreatetabletemp(idintnotnull,namevarchar(255)notnulldefault‘abc’,charnull)上面的table加上了非空约束,也可以用alter来修改或增加非空约束增加非空约束altertabletempmodifysexvarchar(2)null;取消非空约束altertabletempmodifysexvarchar(2)null;取消非空约束,增加默认值altertempmodifysexvarchar(2)default‘abc’null;2、unique唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。虽然唯一约束不允许出现重复的值,但是可以为多个同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。MySQL会给唯一约束的列上默认创建一个唯一索引;createtabletemp(idintnotnull,namevarchar(25),passwordvarchar(16),-使用表级约束语法,constraintuk_name_pwdunique(name,password));表示用户名和密码组合不能重复添加唯一约束altertabletempaddunique(name,password);altertabletempmodifynamevarchar(25)unique;删除约束altertabletempdropindexname;3、primarykey主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。
MYSQL约束 来自淘豆网m.daumloan.com转载请标明出处.