简单的SQL主键问题

时间:2010-01-25 11:05:56

标签: sql

只是一个快速的菜鸟问题。

为什么要在数据库中使用主键?

9 个答案:

答案 0 :(得分:3)

识别记录:PK是表格中每一行的(唯一)标识符。


例如,请参阅维基百科上的Candidate / Primary key页面,其中包含(引用)

  

在数据库的关系模型中,   关系的候选关键是a   这种关系的最小超级钥匙;   也就是说,一组属性

     
      
  1. 该关系没有两个具有相同值的不同元组   对于这些属性
  2.   
  3. 这些属性没有适当的子集(1)成立。
  4.   

答案 1 :(得分:2)

唯一标识记录。

e.g。假设您有一个Customers表。每个客户都有一个唯一的ID,以便您可以唯一地识别它们

答案 2 :(得分:1)

必须以某种方式识别每条记录。例如,对于存储网站注册用户的数据库,您不会尝试通过登录来识别它们,而是通过UID(通常UID = 1是管理员 - 例如Drupal以这种方式执行)。主键通常是一个自动递增的整数,因此您可以保证它不会重复,为您的所有记录分配唯一的标识。

答案 3 :(得分:0)

否则你将无法将一行(元组)与另一行(元组)区分开来

答案 4 :(得分:0)

唯一标识记录,并允许您在另一个表上将其作为外键进行有效连接

答案 5 :(得分:0)

在关系数据库中维护referential integrity

答案 6 :(得分:0)

记录是唯一名称或标识符,如果您喜欢)。

  

就像每部手机的电话号码一样   有一个,没有两部手机   使用相同的电话号码。

答案 7 :(得分:0)

虽然主键的主要用途是唯一地标识记录,但与其他任何键一样,它们对性能也很重要。密钥存储在索引中,并且可以更快,更快地从数据库中选择数据。

答案 8 :(得分:0)

表上主键的用途是为表中的每一行提供唯一标识符。主键应满足以下三个要求:

  1. 非空
  2. 唯一
  3. 不变的
  4. 例如,假设您有一个名为ORDERS的表,它表示企业销售的各种产品的订单,并且在此表中有一个名为ORDER_NUMBER的字段。乍一看,似乎有理由说ORDER_NUMBER应该是ORDERS表上的主键,但您必须查看数据以及生成订单号的业务流程。如果您的销售人员使用某种应用程序输入订单,以确保ORDER_NUMBER始终被赋予值(不是NULL),则永远不会重复(唯一性),永远不会更改(不变),然后ORDER_NUMBER可能在事实上,成为主要关键人物是一个很好的选择。另一方面,如果销售人员的“收集订单”的想法是把顾客带出去,让他们喝醉,希望他们可能会买东西,然后在潮湿的鸡尾酒餐巾纸上潦草地写下产品订单如果她记得的话,老板的女朋友会输入订单并在订单号上编号,这可能只是因为ORDER_NUMBER不会成为一个好的主键。

    分享并享受。