简要介绍数据库表的约束和主要类型、作用?
2个回答
展开全部
首先应该说下什么是数据库约束?
数据库约束是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具。所以我们在学习约束的时候就会看到域完整性(Domain Integrity)、实体完整性(Entity Integrity)、参照完整性(Referential Integrity)与用户定义完整性(User-defined Integrity)的不同的约束分类。但我今天就说下我们或是我们有些人刚接触数据库的同学,并且从SQL语言基础了解并学习到的。
1、非空约束(Not Null Constraint)
这个可能大家都了解,就是我们在添加那个表 userinfo,在id、name后面都添加了not null,就是有些列不能把它设为空,相信大家都理解,我就说下我在一个英文资料看到的一段英文:The not null specification prohibits the insertion
of a null value for this attribute.Any database modifucation that would cause a null to be inserted in an attribute declared to be not null generates an error diagnostic.(大家就得自己翻译了)
2、唯一约束(Unique Constraint)
一个唯一约束并不包括一个NULL值。直接在字段定义后加入UNIQUE即可定义该唯一约束。
1) 一个表只能创建一个主键约束,但一个表可以根据需要对不同的列创建若干unique约束
2)主键字段不允许为null ,unique允许为空
3)一般创建主键约束时,系统自动产生簇索引,unique约束自动产非簇索引
3、检查约束(The Check Clause)
通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。
我来举一个例子
create table student (
name varchar(15) not null,
student_id varchar(15),
degree_level varchar(15),
primary key(student_id),
check(degree_level in('Bachelors','Masters','Doctorate')));
Here ,we use the check clause to simulate an enumerated type by specifying that degree_level must to be one of 'Bachelors','Masters','Doctorate';
4、主键约束(Primary Key Constraint)
其实主键约束就是一张表只能建立一个主键约束,其实就是唯一约束+非空约束。大家通过上课讨论那么多关于“依赖”的事情,估计大家都能理解了
5、外健约束( Foreign Key Constraint)
Foreign Key Constraint主要是确保同一个表或者不同表之间的引用完整性,所以必须引用一个PRIMARY KEY或者UNIQUE约束,用户必须在应用表上具有REFERENCES权限;一个表中最多可以有31个外部键约束; 在临时表中,不能使用外部键约束; 主键和外部键的数据类型必须严格匹配 。这个就不多说了给大家推荐一个网站http://tech.sina.com.cn/s/2010-01-04/00481199365.shtml
系摘抄....
网上随便搜索一下,大把大把的~~~
数据库约束是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具。所以我们在学习约束的时候就会看到域完整性(Domain Integrity)、实体完整性(Entity Integrity)、参照完整性(Referential Integrity)与用户定义完整性(User-defined Integrity)的不同的约束分类。但我今天就说下我们或是我们有些人刚接触数据库的同学,并且从SQL语言基础了解并学习到的。
1、非空约束(Not Null Constraint)
这个可能大家都了解,就是我们在添加那个表 userinfo,在id、name后面都添加了not null,就是有些列不能把它设为空,相信大家都理解,我就说下我在一个英文资料看到的一段英文:The not null specification prohibits the insertion
of a null value for this attribute.Any database modifucation that would cause a null to be inserted in an attribute declared to be not null generates an error diagnostic.(大家就得自己翻译了)
2、唯一约束(Unique Constraint)
一个唯一约束并不包括一个NULL值。直接在字段定义后加入UNIQUE即可定义该唯一约束。
1) 一个表只能创建一个主键约束,但一个表可以根据需要对不同的列创建若干unique约束
2)主键字段不允许为null ,unique允许为空
3)一般创建主键约束时,系统自动产生簇索引,unique约束自动产非簇索引
3、检查约束(The Check Clause)
通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。
我来举一个例子
create table student (
name varchar(15) not null,
student_id varchar(15),
degree_level varchar(15),
primary key(student_id),
check(degree_level in('Bachelors','Masters','Doctorate')));
Here ,we use the check clause to simulate an enumerated type by specifying that degree_level must to be one of 'Bachelors','Masters','Doctorate';
4、主键约束(Primary Key Constraint)
其实主键约束就是一张表只能建立一个主键约束,其实就是唯一约束+非空约束。大家通过上课讨论那么多关于“依赖”的事情,估计大家都能理解了
5、外健约束( Foreign Key Constraint)
Foreign Key Constraint主要是确保同一个表或者不同表之间的引用完整性,所以必须引用一个PRIMARY KEY或者UNIQUE约束,用户必须在应用表上具有REFERENCES权限;一个表中最多可以有31个外部键约束; 在临时表中,不能使用外部键约束; 主键和外部键的数据类型必须严格匹配 。这个就不多说了给大家推荐一个网站http://tech.sina.com.cn/s/2010-01-04/00481199365.shtml
系摘抄....
网上随便搜索一下,大把大把的~~~
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐于2017-10-15 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
约束的简介
数据的完整性是指数据的正确性和一致性,可以通过定义表时定义完整性约束,也可以通过规则,索引,触发器等。约束分为两类:行级和表级,处理机制是一样的。行级约束放在列后,表级约束放在表后,多个列共用的约束放在表后。
完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。
约束类型
总的来说有五种:唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束,
有五大关键词,UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT
数据的完整性是指数据的正确性和一致性,可以通过定义表时定义完整性约束,也可以通过规则,索引,触发器等。约束分为两类:行级和表级,处理机制是一样的。行级约束放在列后,表级约束放在表后,多个列共用的约束放在表后。
完整性约束是一种规则,不占用任何数据库空间。完整性约束存在数据字典中,在执行SQL或PL/SQL期间使用。用户可以指明约束是启用的还是禁用的,当约束启用时,他增强了数据的完整性,否则,则反之,但约束始终存在于数据字典中。
约束类型
总的来说有五种:唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束,
有五大关键词,UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询