首頁  >  文章  >  資料庫  >  SQL SERVER 数据库主键和外键的思考

SQL SERVER 数据库主键和外键的思考

WBOY
WBOY原創
2016-06-07 15:11:461239瀏覽

什么是主键: 主键是指表中一个列或者列的组合,其能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的

什么是主键:

        主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。

每一个表都必须定义一个主键吗?

        我个人认为这个问题要看我们的表的功能,利用来存储大量数据,并需要经常查询的,建立主键可以加快查询效率,从而降低服务器的负担,但是如果没有这样的需求,建立主键反而消耗资源,所以这种情况下就没有必要建立主键了。

        有些人认为:虽然在有些数据库中,主键不是必须的,但是最好为每个表都设置一个主键,不管是但主键还是复合主键,它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。

 

主键的作用:

1、  从上面的定义可以看出,主键是用于唯一标识数据库表中一行数据的。

2、  作为一个可以被外键有效引用的对象。

主键的设计原则:

1、  主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。

2、  唯一性,这个原则就不用多说了。

3、  非空性:主键的值是不可重复的,也不可以为空。

什么是外键:

        外键是建立于表与表之间的联系,方便程序的编写。

外键的特点:

1、  外键保证了数据的完整性

2、  使用外键,简单直观,可以直接在数据模型中体现,无论是设计、维护等等。

3、  外键在调试程序的时候可能会带来一些麻烦。

如何插入外键:

SQL SERVER 数据库主键和外键的思考

 

如上图所示,数据库中有三个表,下面我们给news和category表设置关系

SQL SERVER 数据库主键和外键的思考

 

如图所示,邮件单击“数据库关系图”,选择“新建数据库关系图”

SQL SERVER 数据库主键和外键的思考

 

出现上面的“添加表”

选择要添加的表的名称,将这三个表全部添加到里面去(如下图所示)

SQL SERVER 数据库主键和外键的思考

 

我们将news的categoryId设置为category的Id的外键


SQL SERVER 数据库主键和外键的思考

SQL SERVER 数据库主键和外键的思考

 

单击添加按钮


SQL SERVER 数据库主键和外键的思考

 

选择上边的“表和列规范”左边的三个小点号的按钮,点开后如下图所示

SQL SERVER 数据库主键和外键的思考
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn