“用户自定义完整性约束能不能施加于主键上,因为主键有实体完整性约束”这句会对不对?
展开全部
我们直接开门见山,首先我们先来确定什么是约束:数据表的约束是在表中定义的用于维护数据库完整性的一些规则。那么约束的作用也就很明显了,我们可以通过表中的列定义约束可以防止将错误的数据插入表中,也可以保持表之间数据的一致性。接下来我们来了解几个概念:
实体完整性: 规定表的每一行在表中是惟一的实体。又称行完整性,要求在表中不能存在完全相同的行。通过PRIMARY KEY(主键)、Unique(唯一约束)、Identity(标识字段)实现。
参照完整性: 又称引用完整性。指表间的规则,作用于有关联的两个或两个以上的表, 通过使用主键和外键(或唯一键)之间的关系, 使表中的键值在相关表中保持一致。通过 Foregin Key(外键)实现。
用户自定义完整性:指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 通过NOT NULL(非空)、default(默认)、check(检查)实现。
我们来看一下约束的分类:
主键约束:
主键约束使用primary key表示,用来保证实体的唯一性。也就是使用主键约束可以确保在整个表中存储的数据不存在重复值。一般是将Id列设置为主键。
主键列的值能唯一标识表中的每一行,一个表只能有一个主键,而且主键约束中的列不能为空值。只有主键列才能被作为其他表的外键所创建。
由此可见主键已经有了唯一约束和非空约束的作用了。所以图中标识出了要注意主键约束与唯一约束、非空约束的关系。
主键约束具体使用如下图所示:
注:使用图形化界面创建约束的方法本文不做讲解了。
由图中我们可知,创建主键约束有两种途径,一种是在创建表时同步创建主键约束,另外一种是表创建完成以后我们再创建主键约束。以学生表(Student)为例:
创建表时创建主键约束:
CREATE TABLE Student
(
Id INT PRIMARY KEY --PRIMARY KEY就是创建主键约束的关键字
)
创建表成功后创建主键约束:
ALTER TABLE Student ADD CONSTRAINT PK_Student_Id PRIMAERT KEY(Id)
需要注意的是表创建完成以后创建约束属于修改表,所以需要以ALTER TABLE 开头表示修改表,ADD CONSTRAINT是添加约束的关键字,PK_Student_Id是创建约束的名字,PRIMARY KEY表示约束的种类,括号里面的Id表示在Id列上创建约束。
实体完整性: 规定表的每一行在表中是惟一的实体。又称行完整性,要求在表中不能存在完全相同的行。通过PRIMARY KEY(主键)、Unique(唯一约束)、Identity(标识字段)实现。
参照完整性: 又称引用完整性。指表间的规则,作用于有关联的两个或两个以上的表, 通过使用主键和外键(或唯一键)之间的关系, 使表中的键值在相关表中保持一致。通过 Foregin Key(外键)实现。
用户自定义完整性:指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 通过NOT NULL(非空)、default(默认)、check(检查)实现。
我们来看一下约束的分类:
主键约束:
主键约束使用primary key表示,用来保证实体的唯一性。也就是使用主键约束可以确保在整个表中存储的数据不存在重复值。一般是将Id列设置为主键。
主键列的值能唯一标识表中的每一行,一个表只能有一个主键,而且主键约束中的列不能为空值。只有主键列才能被作为其他表的外键所创建。
由此可见主键已经有了唯一约束和非空约束的作用了。所以图中标识出了要注意主键约束与唯一约束、非空约束的关系。
主键约束具体使用如下图所示:
注:使用图形化界面创建约束的方法本文不做讲解了。
由图中我们可知,创建主键约束有两种途径,一种是在创建表时同步创建主键约束,另外一种是表创建完成以后我们再创建主键约束。以学生表(Student)为例:
创建表时创建主键约束:
CREATE TABLE Student
(
Id INT PRIMARY KEY --PRIMARY KEY就是创建主键约束的关键字
)
创建表成功后创建主键约束:
ALTER TABLE Student ADD CONSTRAINT PK_Student_Id PRIMAERT KEY(Id)
需要注意的是表创建完成以后创建约束属于修改表,所以需要以ALTER TABLE 开头表示修改表,ADD CONSTRAINT是添加约束的关键字,PK_Student_Id是创建约束的名字,PRIMARY KEY表示约束的种类,括号里面的Id表示在Id列上创建约束。
七鑫易维信息技术
2024-09-02 广告
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询