按照能区分,分为五种约束
NOT NULL非空
PRIMARY KEY主键
UNIQUE KEY 唯一约束
DEFAULT 默认约束
FOREIGN KEY 外键约束
外键约束的要求
1.副表和子表必须使用相同的存储引擎,而且禁止使用临时表
2.数据表的存储引擎智能为InnoDB
3.外键列和参照列必须具有相似的数据类型。数字必须相同,字符的长度可以不同
4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL会自动创建索引
外键约束的参数操作
1.CASCADE:从父表删除或更新并且自动删除或更新子表中的外键列
2.SET NULL:从父表中删除或更新行,并设置子表中的外键列为NULL,如果使用该选项后,必须保证子表列没有指定NOT NULL
3.RESTRICT:拒绝对父表的删除或更新操作
4.NO ACTION:标准SQL关键字,在MySQL中与RESTRICT相同
SHOW CREATE TABLE FROM provinces;
SHOW COLUMNS FROM provinces;
表级约束与列级约束
//修改数据表
修改列定义
ALTER TABLE table_name MODIFY col_name1 col_definition [FIRST|AFTER col_name2]//将col_name1放在第一位或者col_name后面
修改列名称
ALTER TABLE table_name CHANGE old_col_name TO new_col_name col_definition [FIRST|AFTER col_name]
修改数据表的名字
TALTER TABLE tab_name RENAME [TO|AS] new_tab_name
或者是:RENAME TABLE tab_name TO new_tab_name [,tab_name2,tab_name3.....]
NOT NULL非空
PRIMARY KEY主键
UNIQUE KEY 唯一约束
DEFAULT 默认约束
FOREIGN KEY 外键约束
外键约束的要求
1.副表和子表必须使用相同的存储引擎,而且禁止使用临时表
2.数据表的存储引擎智能为InnoDB
3.外键列和参照列必须具有相似的数据类型。数字必须相同,字符的长度可以不同
4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL会自动创建索引
外键约束的参数操作
1.CASCADE:从父表删除或更新并且自动删除或更新子表中的外键列
2.SET NULL:从父表中删除或更新行,并设置子表中的外键列为NULL,如果使用该选项后,必须保证子表列没有指定NOT NULL
3.RESTRICT:拒绝对父表的删除或更新操作
4.NO ACTION:标准SQL关键字,在MySQL中与RESTRICT相同
SHOW CREATE TABLE FROM provinces;
SHOW COLUMNS FROM provinces;
表级约束与列级约束
//修改数据表
修改列定义
ALTER TABLE table_name MODIFY col_name1 col_definition [FIRST|AFTER col_name2]//将col_name1放在第一位或者col_name后面
修改列名称
ALTER TABLE table_name CHANGE old_col_name TO new_col_name col_definition [FIRST|AFTER col_name]
修改数据表的名字
TALTER TABLE tab_name RENAME [TO|AS] new_tab_name
或者是:RENAME TABLE tab_name TO new_tab_name [,tab_name2,tab_name3.....]