约束:限制表中的数据,准确性和可靠性

  • NOT NUll : 非空约束.保证该字段不能为空
  • DEFAULT : 默认约束 ,保证该约束有默认值
  • PRIMARY KEY : 主键约束,保证唯一,且非空
  • UNIQUE : 唯一约束,保证唯一,可为空
  • CHECK : 检查约束[mysql不支持]
  • FOREIGN LEY:外键约束,限制两个表的关系,保证该字段必须来自主表的关联列的值

创建表时添加约束

列级约束:

  1. 六大约束语法都支持,外键没有效果

表级约束

    除了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 列名 数据类型 ;