1.null约束
create表时,指定某列不为空
create table [表名](
id int not null;-- id 不为空
)
2.unique :唯一约束
指定列为唯一的,不重复的,插入前会查找若已存在则插入失败
create table [表名](
id int unique;-- id 不重复
)
3.default:默认值约束
指定插入数据的时候,列为空取默认值,若为定义默认值则自动默认为null
create table [表名](
name varchar(20) default 'mxz';-- name列为空时默认为mxz
)
4.primary key:主键约束
指定列为主键,表示了一个记录的身份标识,相当于唯一(不能重复)以及不能为空,一张表中只能有一个主键,但是可以让多个列作为一个联合主键。
若是只有数字的列(例如数字每次+1),可以借助MySQL提供的自增主键 auto_increment,每次插入的时候就不需要用户手动指定id的值,MySQL会自动分配一个合适的值,但用户也可以手动增加。
create table [表名](
id int primary key auto_increment;-- id 从1开始自动增加不重复不为空,若中途用户手动添加值则按用户添加的值为准(即有可能出现不连续的情况)
)
5.foreing key:外键约束
涉及两张表
字段名属于当前表列名,主表(列)表示哪个表的哪一列(另外已经创建好的表)
create table [表名](
foreign key [字段名] references 主表[列]
)