约束:NOT NULL,PRIMARY KEY,UNIQUE KEY,DEFAULT,FOREIGN KEY
约束保证数据完整性,一致性
约束分为:表级约束,列级约束
约束类型:
NOT NULL 非空约束
PRIMARY KEY 主键约束
UNIQUE KEY 唯一约束
DEFAULT 默认约束
FOREIGN KEY 外键约束
外键约束
1 作用:数据一致性完整性,实现一对一或一对多关系
2 要求:
1)父表和子表(具有外键列的称为子表,子表参照的表为父表)必须使用相同的存储引擎,禁止使用临时表。
2)数据表的存储引擎只能是InnoDB。
3)外键列和参照列必须要有相似的数据类型,其中数字的长度或是否有符号位必须相同,字符的长度则可以不同。
4)外键列和参照列必须创建索引(参照列没有索引,MySQL自动创建索引,而外键列没有索引MySQL不会)。
3 编辑数据表默认存储引擎
MySQL配置文件,my.ini,修改默认引擎为INNODB
default-storage-engine=INNODB
4 例子:打开test数据库,创建provinces数据表,创建user数据表,设置外键约束,当pid和provinces表中的id长度和符号位不一致,无法创建外键约束。有外键的表user表是子表,子表参照的province表是父表。pid是外键列,id是参照列。
错误,字段长度不一致5 查看数据表引擎
show create table tbl_name
查看索引
show indexes from provinces
6 外键约束的参照操作
创建一个user1表,参照属性为cascade province中插入数据 user1中插入 删除父表,子表也删除7 实际中,不使用物理外键,使用逻辑外键约束
8 表级约束与列级约束
对一个数据列的约束,为列级约束
对多个数据列的约束,为表级约束
列级约束既可以在列定义时声明,也可以在列定义以后声明。表级约束只能在列定义后声明。常用列级约束
网友评论