
数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。
约束通常与一个表相关联,并使用CREATE CONSTRAINT或CREATE ASSERTIONSQL语句创建。
所有的关系数据库都支持对数据表使用约束,通过约束可以更好地保证数据表里数据的完整性。
是表上强制执行的校验规则,除此之外,当表中数据存在相互依赖性时,可以保护相关数据不被删除。约束通常无法修改。
扩展资料
数据库中的五大约束:
1、主关键字约束
主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。
2、外关键字约束
外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。
3、唯一性约束
惟一性约束指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的值。唯一性约束指定的列可以有NULL 属性。由于主关键字值是具有唯一性的,因此主关键字列不能再设定唯一性约束。唯一性约束最多由16 个列组成。
4、检查约束
检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。可以对每个列设置复合检查。
5、缺省约束
缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。SQL Server 推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。
建立列约束的语法是:CREATE TABLE products (
product_no integer UNIQUE,
name text,
price numeric
)
建立表约束的语法是:
CREATE TABLE products (
product_no integer,
name text,
price numeric,
UNIQUE (product_no)
)
范式书上讲解太拗口,自己总结一下:
第一范式:数据表中的每一列(每个字段)必须是不可拆分的最小单元,不允许存在隐藏字段,属性保持“原子性”(最大细分的二维表)
第二范式:第一范式基础上要有主键,所有列都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情(相当于这行阐述的是一个人时,你不能加一列说明天气)
第三范式:满足第二范式,表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键)
正规化范式(BCDF):所有表中的决定因素必须是一个候选键,如果只有一个候选键,那么就和第三范式是一样的。
有第四第五范式,更高的范式是为了解决数据冗余问题,但可以通过其他办法达到。所以一般用不到
五大约束:
1. primary KEY :设置主键约束;
2. UNIQUE :设置唯一性约束,不能有重复值;
3. DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2
4. NOT NULL :设置非空约束,该字段不能为空;
5. FOREIGN key :设置外键约束。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)