什么是数据库约束

什么是数据库约束

 数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。

约束通常与一个表相关联,并使用CREATE CONSTRAINT或CREATE ASSERTIONSQL语句创建。

所有的关系数据库都支持对数据表使用约束,通过约束可以更好地保证数据表里数据的完整性。
是表上强制执行的校验规则,除此之外,当表中数据存在相互依赖性时,可以保护相关数据不被删除。约束通常无法修改。

扩展资料

数据库中的五大约束:

1、主关键字约束

主关键字约束指定表的一列或几列的组合的值在表中具有惟一性,即能惟一地指定一行记录。每个表中只能有一列被指定为主关键字,且IMAGE 和TEXT 类型的列不能被指定为主关键字,也不允许指定主关键字列有NULL 属性。

2、外关键字约束

外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它适合哪个表中哪些列相关联。

3、唯一性约束

惟一性约束指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的值。唯一性约束指定的列可以有NULL 属性。由于主关键字值是具有唯一性的,因此主关键字列不能再设定唯一性约束。唯一性约束最多由16 个列组成。

4、检查约束

检查约束对输入列或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。可以对每个列设置复合检查。

5、缺省约束

缺省约束通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的缺省值。SQL Server 推荐使用缺省约束,而不使用定义缺省值的方式来指定列的缺省值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-21

SQL 约束(Constraints)

    SQL 约束用于规定表中的数据规则。

    如果存在违反约束的数据行为,行为会被约束终止。

    约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

具体用法如下:

在 SQL 中,我们有如下约束:

    NOT NULL – 指示某列不能存储 NULL 值。

    UNIQUE – 保证某列的每行必须有唯一的值。

    PRIMARY KEY – NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

    FOREIGN KEY – 保证一个表中的数据匹配另一个表中的值的参照完整性。

    CHECK – 保证列中的值符合指定的条件。

    DEFAULT – 规定没有给列赋值时的默认值。

    在下面的章节,我们会详细讲解每一种约束。

-from shulanxt

第2个回答  推荐于2017-11-23
oracle数据库约束
约束用于确保数据库数满足业务规则。

约束包括:NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY以及CHECK等5种类型。

建立主键约束和唯一约束时,Oralce会基于约束列自动建立唯一索引;主键约束不允许为NULL,唯一约束允许为NULL。

一张表只能建立一个主键约束。

建表约束:NOT NULL只能在列级定义;其它4种既可以在列级定义,也可以在表级定义。复合主键约束只能在表级定义。

维护约束:增加NOT NULL约束时必须使用MODIFY子句,而增加其它约束时需要使用ADD子句。

第一, 定义约束

---------------------------------------------

语法:

CREATE TABLE [SCHEMA.]table_name(

column_name datatype [DEFAULT expr] [column_constraint],

...

[table_constraint][, ...]

);

例子:

CREATE TABLE tt_user_info
(
ID VARCHAR2(20 BYTE),
NAME VARCHAR2(20 BYTE) NOT NULL,
category_id VARCHAR2(20 BYTE) REFERENCES tb_out_service(serviceid),
remark VARCHAR2(1000)
);

ALTER TABLE tt_user_info ADD (
CHECK ( LENGTH(NAME)>2),
PRIMARY KEY (ID),
UNIQUE (NAME)
);

说明:

1. NOT NULL,非空约束

not null

2. UNIQUE,唯一约束

UNIQUE (COL_NAME)

3. PRIMARY KEY,主键约束

primary key (col_name1 [, col_name2])

4. FOREIGN KEY,外键约束

它有三种类型:

来源:(http://blog.sina.com.cn/s/blog_55d572ca0100coew.html) - oracle数据库约束 转帖_zeeman_新浪博客
references primary_table(primary_col)

on delete cascade

on delete set null

5. CHECK,检查约束

check (money > 1000)

第二, 维护约束

----------------------------------------

1. 增加约束

NOT NULL使用ALTER MODIFY子句,其它的使用ALTER ADD子句

-------------------------------

CREATE TABLE tt_user(NAME VARCHAR2(20));

ALTER TABLE tt_user MODIFY user_name NOT NULL;
ALTER TABLE tt_user ADD CONSTRAINT constraint_name UNIQUE(NAME);
ALTER TABLE tt_user ADD CONSTRAINT constraint_name PRIMARY KEY(NAME);
ALTER TABLE tt_user ADD parentid VARCHAR2(20)
CONSTRAINT constraint_name
REFERENCES tb_out_service(serviceid);

2. 修改约束名

ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name TO new_constraint_name

3. 删除约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name

4. 禁止约束

ALTER TABLE table_name DISABLE CONSTRAINT constraint_name [CASCADE];

5.激动约束

ALTER TABLE table_name ENABLE CONSTRAINT constraint_name;

第三. 显示约束信息

所有约束信息

SELECT *
FROM user_constraints

来源:(http://blog.sina.com.cn/s/blog_55d572ca0100coew.html) - oracle数据库约束 转帖_zeeman_新浪博客本回答被提问者采纳
第3个回答  2010-06-12
起始约束就是一种限制,限制你做某些事情。比如表中某字段设置成了主键约束,那该字段就只能是为一的,不能有重复的数据出现,这就限制了你的一些权限。其他的约束性质差不多,也是限制一些东西,呵呵
第4个回答  2010-06-12
对数据的一种检查机制有check default forenign primarykey 等等
相似回答