码迷,mamicode.com
首页 > 数据库 > 详细

数据库里面的键(SQL Server)

时间:2015-05-22 13:03:28      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

引言:

  • 前几天学习项目的时候发现了关于SQL里的一点基础见解。
  • 关于SQL里的主键,外键。

主键:

  • 主键有2种主键的存在。一种是业务主键,一种是逻辑主键。
  • 业务主键通常是表里有的数据作为主键使用。一般常见的就是不容易重复的数据,例如:身份证号等
  • 逻辑主键就是本来一条数据没有这个字段,但是我们担心会出现重复数据,我们自己生成一个让此条数据成为唯一的重要字段,在一张表里很明显的主键建立方式是一个 int字段标明他 并且让他自增长(一般称为标识列)
  • 一般主键的作用用术语说就是“实体完整性”
  • 实体:表中的记录,一个实体就是指表中的一条记录。
  • 实体完整性:在表中不能存在完全相同的记录,且每条记录都要具有一个非空且不重复的主键值。
  • 使用逻辑主键另外一个优势就是他的物理性能比较好。在sql的物理存储中他是一并往下添加,和数据的排列是一致的,这样做任何操作都会比较方便、快捷。
  • GUID,GUID算法是一种可以产生唯一表示的高效算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一计算机还是不同计算机。在公元3400年前产生的GUID与任何其他产生过的GUID都不相同。通常我们使用逻辑主键比较合理。
  • GUID如果当主键我们通常要注意,他不会像int字段那样自增长,他是随机的,所以使用GUID也会造成数据存储的物理性变差,使一张表会出现很多变动,当然事无绝对,也有方法能让GUID的排序和数据的排序一致。
  • Sql中的方法:newid();

外键:

  • 外键我们通常不能单独解释,我的理解是当有2个互相关联的表要组合在一起便于做各种操作的时候,外键就起到了很大的作用,也就是用术语说是“参照完整性”
  • 当更新、删除、插入一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。参照的完整性要求关系中不允许引用不存在的实体。参照完整性与实体完整性是关系模型必须满足的完整性约束条件。
  • 简单的说就是表间主键外键的关系。
  • 参照完整性则是相关联的两个表之间的约束,具体的说,就是从表中每条记录外键的值必须是主表中存在的,因此,如果在两个表之间建立了关联关系,则对一个关系进行的操作要影响到另一个表中的记录。

     现在有两张表,Users表有一个字段是“userId”和一个字段“carId”,"username",Cars表有一个字段“carId”和“carName” ,他们之间添加了外键关联。所以如果我们想知道其中一个user的car name我们就可以使用这样的sql来查询

    

select u.username,c.carName from u as Users inner join c as Cars on u.carId=c.carId where u.userId=@UserId

 

    请注意这里的 u.carId=c.carId 这样就将两张表联系上了。我们也查询到了我们想要的2张表的结果。

 

定义主键和外键主要是为了维护关系数据库的完整性,总结一下:

  一、主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

    外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

  二、主键、外键的区别 

  • 定义:
  1.  主键--唯一标识一条记录,不能有重复的,不允许为空
  2.  外键--表的外键是另一表的主键, 外键可以有重复的, 可以是空值

 

  • 作用:
  1.  主键--用来保证数据完整性
  2.  外键--用来和其他表建立联系用的

 

  • 个数:
  1.  主键--主键只能有一个
  2.  外键--一个表可以有多个外键

 

    

     

     

数据库里面的键(SQL Server)

标签:

原文地址:http://www.cnblogs.com/HerryBear/p/4520869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!