一、什么是约束?
为了保证数据的一致性和完整性,SQL规范以约 束的方式对表数据进行额外的条件限制。 • 约束是表级的强制规定 • 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通 过 ALTER TABLE 语句)。
二、约束分为有六种:
NOT NULL:非空,该字段的值必填
UNIQUE:唯一,该字段的值不可重复
DEFAULT:默认,该字段的值不用手动插入有默认值
CHECK:检查,mysql不支持
PRIMARY KEY:主键,该字段的值不可重复并且非空 unique+not null
FOREIGN KEY:外键,该字段的值引用了另外的表的字段。
主键和唯一
1、区别:
①、一个表至多有一个主键,但可以有多个唯一
②、主键不允许为空,唯一可以为空
2、相同点
都具有唯一性
都支持组合键,但不推荐
外键:
1、用于限制两个表的关系,从表的字段值引用了主表的某字段值
2、外键列和主表的被引用列要求类型一致,意义一样,名称无要求
3、主表的被引用列要求是一个key(一般就是主键)
Sqlserver查看表中存在的索引
语法:
CREATE TABLE 表名(字段名 字段类型 列级约束,
字段名 字段类型,
表级约束)
示例:
/*创建表时添加约束/
/1.添加列级约束/
/添加表级约束/
三、修改表时添加或删除约束
修改字段类型
添加非空语法: