2012-03-04 56 views
3

我正在学习Mysql,我正在创建数据库。因此,在查看几个网站之后,主键的定义如下: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 
) 

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

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

谢谢你。

+0

唯一困难的部分是......其他问题是这个重复的? – 2012-03-04 00:30:20

+0

可能重复[主键,唯一键和索引在MySQL中有什么区别?](http://stackoverflow.com/questions/3844899/whats-the-difference-between-primary-key-unique-key-and -index-in-mysql) – 2012-03-04 00:33:27

回答

4

A primary keycolumn,其定义为每行唯一标识

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

+0

+1您可能还会发现http://stackoverflow.com/questions/8038641/please-confirm-my-use-of-primary-key-and-unique-index/8038647#8038647有用。 – 2012-03-04 00:34:29

2

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

没有主键您无法区分名为约翰史密斯的两名员工(没有其他信息)希望这是足够清晰的。

+0

我会说'有时由dbms分配'而不是'正常',但在其他方面同意。 – 2012-03-04 00:35:53

+0

在上面的例子中,如果你想为数据库中的每一个新行(entry)自动分配一个主键(唯一标识符),你可以制作第三行(左括号后的第一行):'P_Id INT NOT NULL AUTO_INCREMENT' – mattfryercom 2012-03-04 00:37:58

+0

好的,我明白了,谢谢大家! – r1nzler 2012-03-04 00:39:57