约束:限制表中的数据,准确性和可靠性
- NOT NUll : 非空约束.保证该字段不能为空
- DEFAULT : 默认约束 ,保证该约束有默认值
- PRIMARY KEY : 主键约束,保证唯一,且非空
- UNIQUE : 唯一约束,保证唯一,可为空
- CHECK : 检查约束[mysql不支持]
- FOREIGN LEY:外键约束,限制两个表的关系,保证该字段必须来自主表的关联列的值
列级约束:
六大约束语法都支持,外键没有效果
表级约束
除了NOT NULL; DEFAULT 其他都支持<br /> [constraint 约束名] 约束类型(字段名)<br /> 外键约束: [constraint 约束名] FOREIGN KEY(表中字段名) REFERENCES 其他表中字段
表级约束可以起别名,主键没有效果
show index from 表名 ; 查看表中的索引包括主键,外键,唯一;可以接收一个null值
添加多个主键primary key(列1,列2);
主键与唯一 :1.都可以保证唯一,主键不能为空值 2 .唯一可以为空值 ,表中只能有一个主键,但可以有多个唯一键。3.主键和唯一可以有多个列组合(添加时只有值全部相等就会报错,有一个不同也能添加).
外键的特点:1.类型应该一样或兼容;2.主表的关联列必须是KEY;3.插入应该先插主表,删除先删从表
添加列级约束:
alter table 表名 modify column 列名 数据类型 约束
添加表级约束:
alter table 表名 [constraint 约束名] add 约束类型(字段名)
外键添加列级约束 : alter table FOREIGN KEY(表中字段名) REFERENCES 其他表中字段
删除约束
alter table 表名 modify column 列名 数据类型 ;
alter table 表名 drop 约束 列名 ;
主键删除 : alter table 表名 drop primary key;
唯一键删除 : alter table 表名 drop index 约束名
标识列:在创建表时对应的列(必须是一个键,只能时数值型)后面加入auto_increment;
set auto_increment_increment = 3; 添加增加数(不建议都会改)
手动插入值就可以设置起始值
一个表只能有一个标识列,也只能是数值类型
修改表时添加
alter table 表名 modify column 列名 数据类型 约束 auto_increment;
修改表时删除
alter table 表名 modify column 列名 数据类型 ;
