数据库怎么在建表之后怎么给字段添加约束?

数据库怎么在建表之后怎么给字段添加约束?,第1张

五大约束

1.—-主键约束(Primay Key Coustraint) 唯一性,非空性

2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个

3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)

4.—-默认约束 (Default Counstraint) 该数据的默认值

5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列

五大约束的语法示例

1.—-添加主键约束(将stuNo作为主键)

alter table stuInfo

add constraint PK_stuNo primary key (stuNo)

2.—-添加唯一约束(身份z号唯一,因为每个人的都不一样)

alter table stuInfo

add constraint UQ_stuID unique(stuID)

3.—-添加默认约束(如果地址不填 默认为“地址不详”)

alter table stuInfo

add constraint DF_stuAddress default (‘地址不详’) for stuAddress

4.—-添加检查约束 (对年龄加以限定 15-40岁之间)

alter table stuInfo

add constraint CK_stuAge check (stuAge between 15 and 40)

alter table stuInfo

add constraint CK_stuSex check (stuSex=’男’ or stuSex=’女′)

5.—-添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)

alter table stuInfo

add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)

约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。

语法:

ALTER TABLE 表名

ADD CONSTRAINT 约束名 约束 类型 具体的约束说明

上述语法表示修改某个表,添加某个约束。其中,约束名的命名规则推荐采用“约束类型_约束字段”这样的形式。

示例:

添加主键约束(将stuNo设为主键):

ALTER TABLE stuInfo

ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)

添加唯一约束(身份z号唯一):

ALTER TABLE stuInfo

ADD CONSTRAINT UQ_stuID UNIQUE (stuID)

添加默认约束(如果地址不填,默认为“地址不详”):

ALTER TABLE stuInfo

ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR stuAddress

添加检查约束(要求年龄只能在 15~40岁之间)

ALTER TABLE stuInfo

ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)

添加外键约束(主表 stuInfo 和从表 stuGrade 建立关系,关联字段为 stuNo ):

ALTER TABLE stuGrade

ADD CONSTRAINT FK_stuNo

FOREIGN KEY (stuNo) REFERENCES stuInfo(stuNo)

GO

问题一:什么是"实施参照完整性" 实施参照完整性 一般是 创建外键 表关联的时候使用.

我以一个 例子来说明。

例如 有2个表。 一个班级表, 一个学生表

班级表 ( 班级编号, 班级名称, 班级其他字段... )

学生表 (学号, 所属班级编号, 学生名, 学生其他字段 ...)

当在 班级表 与 学生表 之间, 创建一个 关联的时候, 也就是 学生表的 “所属班级编号” 与 班级表 的 户班级编号” 建立关联的时候。

实施参照完整性 意味着, 当你向 学生表插入数据的时候, 如果输入了一个 班级表里面, 还没有的 班级编号, 那么 数据库将报错, 不允许你这么做。

也就是如果 班级表有 1,2,3 共三个班级。 而你插入了一个 学生 张三, 所在班级是 5班的。

那么数据库直接报错了。

这就是 实施参照完整性 的效果。

目的是为了避免,数据库中, 产生垃圾数据。

也就是如果软件开发人员, 在写程序的时候,不小心,忘记检查某些数据合法性的情况下, 数据库最底层,还能做最后一次检查。

问题二:ACCESS表之间一对多关系并实施参照完整性需要怎么 *** 作 打开工具\关系,把相关表拖上去,进行处理。

问题三:怎么在表和表之间建立实施参照完整性 什么是SQL呢 SQL就是专门用来做数据库的一门语言 和C语言差不多 (当然功能不紧紧是做数据了 编程啊 都可以..... 这里就不多说了)z这道题用ACCESS 就可以完成了

1 首先 用Access 2000(数据库 )做一个数据库 打开设计器创建表 在点菜单 另存为 名为班级名+自己名字英文简写 最后点保存啦 (每完成系统都是有提示的啦) 第一问 解决

2 打开设计器 上面做的表下面下

创建数据表 名字都是在最后完成时做的 先不用管 然后在输入sID,sName,sSex,sAge,sClass 注意根据后面的要求填写字段 及数据类型 以及

在做其他的问题了将T_Student表的sID字段设置为标识列,种子为1,增量为2。

为T_Student表的sSex(性别)字段设置其默认值为“男”。

为T_Student表的sAge(年龄)字段设置检查约束,规定年龄在0到30岁之间。

为T_KC表的cName(课程名称)字段设置唯一性约束。,规定课程名称不得重复。

生成一个规则t_rule,限制数据的取值范围在(0---100)之间,然后将这个规则绑定到T_CJ表的cj(成绩)字段。

为T_KC表的cName字段创建索引。

最后

当然主键当然是SID了 一定要标好哦~~・先不管作业其他要求

在依次做其他2个表

T_KC(cID,cName,sBianhao,sXuefen)

T_CJ(sID,cID,cj) 注意主键是SID

3. 做好了三个表后退出设计器

在打开以一个个表 在按要求输入(在每个表中添加3-5条记录。)

好了 基本就完成了

当然用SQL 也能完成 这些问题 并且要快 但涉及到TQL语言 编程问题 很难说清楚 就不一一解释了・・・

问题四:access 中实施参照完整性 求解决!! 当我们把2张表建立联系的时候,这2个表肯定是有关系的。它可以是一对一的关系;如果是多对多的关系,这是不允许出现的(说明表及其关系设置有问题);大多数都是一对多的关系,当建立了一对多关系时数据库引擎就自然建立完整性原则,它能保证2个表之间的关系及数据得到正确的维护,从最基本的意义上说,防止“多端”出现不完整的记录。

参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现第一种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现第一种情况。

现在,回到你的问题。

1、如果你的2个表在没有数据时,建立上面的关系,肯定可以,并且可以“实施参照完整性”饥以后你在“借书证”表中输入“书号”时,数据库会限定这个“书号”只能是“书”表中存在的书号,这是为了保证数据的完整性。

2、我可以肯定你的2个表是先有数据,后再想建立关系并想实施参照完整性的,而且“借书证”表中至少有1个以上的“书号”在“书”表中没有相应的记录,此时如果你强行建立参照完整性,这就违反了参照完整性的要求(不允许在“多端”的字段中输入1个“一端”主键不存在的值),换句话说,你的多端(既借书证表)存在了一端(既书表)中没有的记录,数据库不允许出现这种情况,所以出现提示框的内容。

3、改进方法有3种,建议前2种。①、删除“借书证”表中在“书”表中没有相关“书号”的记录,后再建立关系及参照完整性;②、在“书”表中添加相关的书号,以保证“借书证”表中所有书号在“书”中都存在,然后再建立关系及参照完整性;③、像提示框所说的“清除参照完整性复选框”,这可以建立关系,但不能实施参照完整性,不建议这样做,因为不实施参照完整性会导致数据不完整,以后会有大麻烦的。

4、“借书证”表和“读者”表 的关系也应该如上处理。

问题五:access中无法实施参照完整性 怎么办 5分 参照完整性是一个规则系统,Microsoft Access 使用这个系统用来确保相关表中记录之间关系的有效性,并且不会意外地删除或更改相关数据。

使用参照完整性时要遵循下列规则:

不能在相关表的外键字段中输入不存在于主表的主键中的值。

如果在相关表中存在匹配的记录,则不能从主表中删除这个记录。例如,如果在“订单”表中有订单分配给某一雇员,就不能在“雇员”表中删除此雇员的记录。

如果某个记录有相关的记录,则不能在主表中更改主键值。例如,如果在“订单”表中有订单分配给某个雇员时,不能在“雇员”表中更改这位雇员的雇员ID。

你目前的情况看来是成绩表的学号出问题了,你看看这个是不是主表的主键里面没有。

问题六:Access2010,怎么实施参照完整性,最好配图说明按键在哪 数据库工具--->关系---->在“显示表”对话框选择表,鼠标从一个表的关联字段拖动到另一个关联字段,d出“编辑关系”对话框,选中“实施参照完整性”

问题七:access为什么不能实施参照完整性 提示的很清楚嘛,因为你的表里现有的数据不符合你的参照关系。

先将表里不完整的数据补充完整,再参照,

或者空表参照,然后在写入数据,此时如果数据不完整会有提示,保存不了的。

祝你成功!

问题八:Access编辑关系中,无法实施参照完整性,这是怎么回事呢? 数据不一致。两张表的数据值得一致,子表数据得选自于主表

问题九:access表间关系中的参照完整性什么意思 在符合下列所有条件时,可以设置参照完整性:来自于主表的匹配字段是主键或具有唯一索引。相关的字段都有相同的数据类型。但是有两种例外情况:“自动编号”字段可以与“字段大小”属性设置为“长整型”的“数字”字段相关;“字段大小”属性设置为“同步复制 ID”的“自动编号”字段可以与一个“字段大小”属性设置为“同步复制 ID”的“数字”字段相关。两个表都属于同一个 Microsoft Access 数据库。如果表是链接的表,它们必须是 Microsoft Access 格式的表,并且必须打开存储此表的数据库以设置参照完整性。不能对数据库中的其他格式的链接表实施参照完整性。使用参照完整性时要遵循下列规则:不能在相关表的外键字段中输入不存在于主表的主键中的值。但是,可以在外键中输入一个 Null 值来指定这些记录之间并没有关系。例如,不能为不存在的客户指定订单,但通过在“客户ID”字段中输入一个 Null 值,则可以有一个不指派给任何客户的订单。如果在相关表中存在匹配的记录,则不能从主表中删除这个记录。例如,如果在“订单”表中有订单分配给某一雇员,就不能在“雇员”表中删除此雇员的记录。如果某个记录有相关的记录,则不能在主表中更改主键值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11917939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存