sql如何设置外键
Ⅰ sql怎么设置外键
创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只有主键没有外键时不行的。
建外键的前提是此外键必须是另外一个表的主键。建外键的步骤:
第一步、打开要建外键表的设计器,右击选择“关系”。
第二步、然后弹出“外键关系”窗体,我们选择“添加”,然后点击“表和列规范”后面的小按钮。
第三步、弹出另外一个窗体让我们选择主键表和列,记住要选择相同的,选好之后点击确定。
第四步、展开INSERT和UPDATE规范,在更新规则和删除规则有四个选项,分别是“不执行任何操作”、“级联”、“设置为NULL”、“设置默认值”。
默认的不执行任何操作。如果是“不执行任何操作”,当我们删除或更新主键表的数据时,会告诉用户不能执行删除或更新该操作。
“级联”的意思是当我们删除或更新主键表的数据时,会删除或更新外键表中所涉及的相关数据的所有行。
“设置Null”的意思是当我们删除或更新主键表的数据时,外键表中的外键列的值会设为Null,但前提是该列允许为空。
“设置默认值”的意思是如果我们将外键列定义了默认值,当我们删除或更新主键表的数据时,外键表中的外键列的值设为定义的默认值。
当然也可以用代码创建,在创建数据库表T——Card时只要加上一句代码就可以了。“Foreign
key
(studentNo)
references
T_Student(studentNo)"。如果已经创建了改表,那如何用代码实现了,这也很简单也就一句代码“
add
constraint
CMPKey(外键名)
foreign
key(studentNo)
references
T_Student(studentNo)”。
Ⅱ sql怎么设置外键(sql怎么设置外键约束)
sqlserver中建立外键约束有3中方式:enterprisemanager中,tables,designtable,设置table的properties,可以建立constraint,referencekey;enterprisemanager中,diagrams,newdiagrams,建立两个表的关系;直接用transactsql语句。
1、三个方法都需要先建立数据表。
1)运肆孝创建表author:
createtable[dbo].[author](
[id][bigint]notnull,[authorname][char](10)null,[address][char](480)null,[introction][ntext]null
)
2)创建表mybbs:
reatetable[dbo].[mybbs](
[id][bigint]identity(1,1)notnull,[authorid][bigint]notnull,[title][char](40)null,[date_of_created][datetime]null,[abstract][char](480)null,[content][ntext]null
)
2、设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transactsql语句,过程如下:
1)增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键id约束:
begintransaction
altertabledbo.mybbsaddconstraintfk_mybbs_author
foreignkey(authorid)
referencesdbo.author([id])
2)删除旁稿外键约束fk_mybbs_author:
--altertabledbo.mybbsdropconstraintfk_mybbs_author
--rollback
committransaction
上面onupdatecascade,ondeletecascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。
拓展资料:SQL的主键和外键的作用:
1、插入非空值时,如果主键表中没有这个值,则不能插入。
2、更新时,不能改为主键表中没有的值。
3、删除主键表记录时,你可以在建外键雹春时选定外键记录一起级联删除还是拒绝删除。
4、更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。
Ⅲ sql用命令创建主键与外键。
1、为了方便大家理解,使用一个例子来帮助大家理解。意思闷敏洞大概就是通过蚂枯引用表二中的字段完成对表一字段的约束。方法:
Ⅳ 怎么在SQL中设置外键
sql server中建立外键约束有3中方式:enterprise manager中,tables,design table,设置table的properties,可以建立constraint, reference key;enterprise manager中,diagrams, new diagrams,建立两个表的关系;直接用transact sql语句。
1、三个方法都需要先建立数据表。
1)创建表author :
create table [dbo].[author] (
[id] [bigint] not null ,
[authorname] [char] (10) null ,
[address] [char] (480) null ,
[introction] [ntext] null
)
2)创建表mybbs:
reate table [dbo].[mybbs] (
[id] [bigint] identity (1, 1) not null ,
[authorid] [bigint] not null ,
[title] [char] (40) null ,
[date_of_created] [datetime] null ,
[abstract] [char] (480) null ,
[content] [ntext] null
)
2、设置表mybbs中的authorid为外键,参照author表的id字段,直接使用transact sql语句,过程如下:
1)增加表mybbs(authorid)的外键约束fk_mybbs_author,表mybbs中的authorid受表author中的主键id约束:
begin transaction
alter table dbo.mybbs add constraint fk_mybbs_author
foreign key (authorid)
references dbo.author([id]) on update cascade on delete cascade
2)删除外键约束fk_mybbs_author:
--alter table dbo.mybbs drop constraint fk_mybbs_author
--rollback
commit transaction
上面on update cascade,on delete cascade两个选项,指明以后author表的id字段有delete,update操作时,mybbs表中的id也会被级联删除或更新。如果没有选中,是不可以对author表中已被mybbs表关联的id进行update或者delete操作的。
拓展资料:
SQL的主键和外键的作用:
1、插入非空值时,如果主键表中没有这个值,则不能插入。
2、更新时,不能改为主键表中没有的值。
3、删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
4、更新主键记录时,同样有级联更新和拒绝执行的选择。
简而言之,SQL的主键和外键就是起约束作用。