本文摘自PHP中文网,作者青灯夜游,侵删。
“主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。那么在MySQL中如何添加主键约束?下面本篇文章就给大家介绍一下。主键约束即在表中定义一个主键来唯一确定表中每一行数据的标识符。主键可以是表中的某一列或者多列的组合,其中由多列组合的主键称为复合主键。主键应该遵守下面的规则:
● 每个表只能定义一个主键。
● 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在两行数据有相同的主键值。这是唯一性原则。
● 一个列名只能在复合主键列表中出现一次。
● 复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的。这是最小化原则。
1、在创建表时添加主键约束
在 CREATE TABLE 语句中,主键是通过 PRIMARY KEY 关键字来指定的。
在定义列的同时指定主键,语法规则如下:
1 | <字段名> <数据类型> PRIMARY KEY [默认值]
|
例:在 test_db 数据库中创建 tb_emp 1 数据表,其主键为 id
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | mysql> CREATE TABLE tb_emp1
-> (
-> id INT (11) PRIMARY KEY ,
-> name VARCHAR (25),
-> deptId INT (11),
-> salary FLOAT
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp1;
+
| Field | Type | Null | Key | Default | Extra |
+
| id | int (11) | NO | PRI | NULL | |
| name | varchar (25) | YES | | NULL | |
| deptId | int (11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+
4 rows in set (0.14 sec)
|
在定义完所有列之后,指定主键的语法格式为:
1 | [ CONSTRAINT <约束名>] PRIMARY KEY [字段名]
|
示例:在 test_db 数据库中创建 tb_emp 2 数据表,其主键为 id
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | mysql> CREATE TABLE tb_emp2
-> (
-> id INT (11),
-> name VARCHAR (25),
-> deptId INT (11),
-> salary FLOAT ,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp2;
+
| Field | Type | Null | Key | Default | Extra |
+
| id | int (11) | NO | PRI | NULL | |
| name | varchar (25) | YES | | NULL | |
| deptId | int (11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+
4 rows in set (0.14 sec)
|
2、在创建表后添加主键约束
阅读剩余部分
相关阅读 >>
mysql 5.0触发器参考教程第44页
mysql如何通过实例化对象参数查询数据 ?(源代码)
mysql版本enterprise/community/cluster等版本的区别
数据库删除语句delete有什么用?
mysql可以比较时间吗
mysql面试题附答案-2019
mysql数据库主从同步设置的实现步骤
怎样安全地关闭mysql实例
对象关系映射orm有什么缺点?
mysql修改权限后本地无法登录怎么办
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » mysql如何添加主键?