SQL学习(二)主键、外键

什么是主键?

        关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。

什么是外键?

        其他表的主键称为外键。

外键取值规则:空值或参照的主键值。


        (1)插入非空值时,如果主键表中没有这个值,则不能插入。
        (2)更新时,不能改为主键表中没有的值。
        (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
        (4)更新主键记录时,同样有级联更新和拒绝执行的选择。

设置主键:

SQLServer:

        打开之前建立的表,即选择 数据库->SSMSTest->表->dbo.student 右键单击dbo.student选择设计。

在sno处右键单击选择设置主键

MySql:

选择需要设计主键的表,点击设计表,找到键点击出现钥匙即可

代码:

点击新建查询输入下列代码,然后点击运行即可


drop table student    --删除表student
create table student  --创建表student
(sno char(4) primary key,  --设置sno为主键
sname char(8),
sage int,
ssex char(2),
sdept char(20)
)

外键设置:

SQLServer:

选择 数据库->SSMSTest->表->dbo.sc 右键单击dbo.sc选择设计。
 


右键单击sno或者cno,选择关系。
 


点击左下角的添加。
 


在 表和列规范 后面的框中点一下,就会出现后面的三个点的按钮,点击三个点图标的那个按钮。
 


因为sc中的sno引用了student中的sno,所以主键表那里选择student,然后选择对应的sno。而sc中的cno因为引用的是course中的sc,所以在这里没法设置外键,需要等下再设置,在这里把它选择为无。点击确定。
 


 


再次点击左下角的添加。按照上述步骤将主键表选择为course,选择对应sc中的cno的course中的cno,并点击确定。
 


 


 


点击关闭,然后保存,在出现的警告中选择是。
 


 

MySql:

        如图所示设计表,点击外键,直接添加即可 

 

 代码:


drop table sc    
create table sc  
(sno char(4) foreign key references student(sno),  --加外键约束
cno char(4) foreign key references course(cno),  --加外键约束
grade int,
primary key(sno, cno)  --设置sno和cno的属性组为主键
)

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值