MySQL主键(PRIMARY KEY)的使用
主键,又称主码,是表中一列或多列的组合。主键约束(Primary Key ConstraINT)要求主键列的数据唯一,并且不允许为空。
主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。
主键和记录之间的关系如同身份证和人之间的关系,它们之间是一一对应的。
MySQL 主键分为两种类型:单字段主键和多字段联合主键。
1) 在定义列的同时指定主键,语法规则如下:
示例1:定义数据表 tb_emp 2,其主键为 id,SQL 语句如下:
2) 在定义完所有列之后指定主键:
示例2:定义数据表 tb_emp 3,其主键为 id,SQL 语句如下:
示例3:定义数据表 tb_emp4,假设表中间没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键,SQL 语句如下:
主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。
主键和记录之间的关系如同身份证和人之间的关系,它们之间是一一对应的。
MySQL 主键分为两种类型:单字段主键和多字段联合主键。
MySQL 单字段主键
主键由一个字段组成,SQL 语句格式分为以下两种情况。1) 在定义列的同时指定主键,语法规则如下:
字段名 数据类型 PRIMARY KEY [默认值]
示例1:定义数据表 tb_emp 2,其主键为 id,SQL 语句如下:
CREATE TABLE tb_emp2 ( id INT PRIMARY KEY, name VARCHAR(25), deptId INT, salary FLOAT );
2) 在定义完所有列之后指定主键:
[CONSTRAINT <约束名>] PRIMARY KEY [字段名]
示例2:定义数据表 tb_emp 3,其主键为 id,SQL 语句如下:
CREATE TABLE tb_emp3 ( id INT, name VARCHAR(25), deptId INT, salary FLOAT, PRIMARY KEY(id) );上述两个例子执行后的结果是一样的,都会在 id 字段上设置主键约束。
MySQL 多字段联合主键
主键可由多个字段联合组成,语法规则如下:PRIMARY KEY [字段1, 字段2,…,字段n]
示例3:定义数据表 tb_emp4,假设表中间没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键,SQL 语句如下:
CREATE TABLE tb_emp4 ( name VARCHAR(25), deptId INT, salary FLOAT, PRIMARY KEY(name,deptId) );语句执行后,便创建了一个名称为 tb_emp4 的数据表,name 字段和 deptId 字段组合在一起成为 tb_emp4 的多字段联合主键。