alter table 表 add constraint 外键约束名称 foreign key (列) references 表 (主键列)
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
设F是基本关系R的一个或一组属性,但不是关系的键,Ks是基本关系S的主键。如果F与Ks相对应,则称F是R的外键,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
换而言之,如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键则该属性集是关系模式R的外键,通常在数据库设计中缩写为FK。
在实际 *** 作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。[1]
显然目标关系的主码和参照关系的外码必须定义在一个或同一组的域上。关系R和S不一定是不同的关系,即外键不一定要与相应的主键同名。如在学生(学号,姓名,性别,专业号,年龄,班长)关系中,“学号”是主键,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系中“学号”属性,因此“班长”是外键,这里学生关系既是参照关系也是被参照关系。不过在实际应用中为了便于识别,当主键与相应的外键属于不同关系时,往往取相同的名字。
第一步:新建数据库并设置可写权限
打开SQL Server管理器窗口,用本地用户登录;然后点击右键——新建数据库;完成之后将数据库文件及日志文件设置为可读可写,如图:
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
第二步:新建数据表
展开数据库,点击表——新建表,输入名称及数据类型,如图:
(注:数据类型非常重要)
请点击输入图片描述
请点击输入图片描述
第三步:设置主键约束
点击表右键——设计——选中id——右键——设置主键,将id设置为主键,主键默认唯一。
如图:
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
第四步:测试主键约束
在数据表中输入数据,为测试主键的约束,输入两行一模一样的id,保存;
如图所示,保存会提示主键不允许重复。
请点击输入图片描述
请点击输入图片描述
第五步:设置非主键唯一值约束
选中表,点击菜单栏——新建查询,将IDcard设为非主键唯一值,输入以下代码:
ALTER TABLE Users
ADD unique(IDcard),然后点击执行。
如图:
请点击输入图片描述
请点击输入图片描述
第六步:测试非主唯一约束
同理,在数据表中输入两行id不同,IDCard相同的数据,并保存;若出现错误提示,将IDCard修改之后再检测,如图:
请点击输入图片描述
请点击输入图片描述
第七步:关闭数据库并断开连接
由于数据库会在后台运行,所以测试完之后,本地数据库一定要断开连接,然后关闭,如图:
请点击输入图片描述
主外键约束,有表内和表外(1)表内,就是直接在建表时建约束,如
create
table
职工表(
职工编号
char(7)
primary
key,
--关键!!加主键
职工名
char(10),
工作编号
char(6),
forieng
key
(职工编号)
references
工作表(职工编号)--关键!!加外键
)
这里的primary
key
就是主键,意思是职工编号是主键,“forieng
key
(职工编号)
references
工作表(职工编号)”是外间约束,意思是为职工表添加外键约束,引用工作表的职工编号
当然主键也可以建在后面,如下:
create
table
职工表(
职工编号
char(7)
,
职工名
char(10),
工作编号
char(6),
primary
key(职工编号)--关键!!加主键
forieng
key
(职工编号)
references
工作表(职工编号)
--关键!!加外键
)
跟上面的一样的意思
(2)表外建约束,就是原表中没定义约束,你用SQL语句添加约束
主键约束:
alter
table
职工表
add
constraint
PK_EMP
primary
key
(职工编号)
--关键!!加主键
当然constraint
PK_EMP可以省略不写,PK_EMP表示的是你给的主键约束名
primary
key
就是主键,意思是职工编号是主键
外键约束:
alter
table
职工表
add
constraint
fk_job_id
forieng
key
(职工编号)
references
工作表(职工编号)--关键!!加外键
同样的constraint
fk_job_id可以不写,
fk_job_id是约束名
“forieng
key
(职工编号)
references
工作表(职工编号)”是外间约束,意思是
为职工表添加外键约束,引用工作表的职工编号
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)