【问题标题】:MYSQL - What is a primary key?MYSQL - 什么是主键?
【发布时间】:2012-03-22 00:18:22
【问题描述】:

我正在学习Mysql,我正在创建数据库。所以,看了几个网站,主键的定义是:

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

并且是这样使用的:

    CREATE TABLE Persons
(
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (P_Id)          //primary key is on this line
)

但是,我仍然不知道它的用途以及我们为什么需要它。所以我的问题是。

有人可以向我解释什么是主键(基本英语)以及我们为什么需要一个主键以及它的用途吗?

谢谢。

【问题讨论】:

标签: mysql primary-key specifications


【解决方案1】:

primary key 是一个column,它被定义为唯一标识表中的每一行。

此外,通过将列定义为PRIMARY KEY,在定义referential integrity 约束时,它可以在其他表中被引用为foreign key

【讨论】:

【解决方案2】:

主键是行的唯一标识符。它通常由数据库管理系统自动分配(如果您为该值指定自动增量)。因此,如果您有一个组织中的人员数据库,他们的主键可能是他们的员工编号。每次添加员工时,他们都会收到一个唯一的员工编号,通常是以前的员工编号 + 1。

如果没有主键,您无法区分两个名为 John Smith 的员工(没有其他信息)希望这足够清楚。

【讨论】:

  • 我会说“有时由 dbms 分配”而不是“通常”,但否则同意。
  • 好吧,公平的说法,我很挑剔。没有打架的意思。
  • @RichardA 我想“正常”是这些天的常态(就像没有任何级别的[真正的] DBA...)
【解决方案3】:

简单来说,

主键 = NOT NULL + UNIQUE

这意味着无论为哪一列分配主键,该列既不会采用 NULL 值,也不会接受重复值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2010-12-21
    • 1970-01-01
    • 2018-08-20
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多