千家信息网

mysql建表时设置主键的方法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!设置方法:在"CREATE TABLE"
千家信息网最后更新 2026年11月03日mysql建表时设置主键的方法

mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

设置方法:在"CREATE TABLE"语句中,通过"PRIMARY KEY"关键字来指定主键,语法格式"字段名 数据类型 PRIMARY KEY [默认值]"或"[CONSTRAINT 约束名] PRIMARY KEY 字段名"。

主键(PRIMARY KEY)的完整称呼是"主键约束",是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。

在创建表时设置主键约束

在创建数据表时设置主键约束,既可以为表中的一个字段设置主键,也可以为表中多个字段设置联合主键。但是不论使用哪种方法,在一个表中主键只能有一个。下面分别讲解设置单字段主键和多字段联合主键的方法。

1)设置单字段主键

在 CREATE TABLE 语句中,通过 PRIMARY KEY 关键字来指定主键。

在定义字段的同时指定主键,语法格式如下:

<字段名> <数据类型> PRIMARY KEY [默认值]

例 1

在 test_db 数据库中创建 tb_emp3 数据表,其主键为 id,SQL 语句和运行结果如下。

mysql> CREATE TABLE tb_emp3    -> (    -> id INT(11) PRIMARY KEY,    -> name VARCHAR(25),    -> deptId INT(11),    -> salary FLOAT    -> );Query OK, 0 rows affected (0.37 sec)mysql> DESC tb_emp3;+--------+-------------+------+-----+---------+-------+| 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)

或者是在定义完所有字段之后指定主键,语法格式如下:

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]

例 2

在 test_db 数据库中创建 tb_emp4 数据表,其主键为 id,SQL 语句和运行结果如下。

mysql> CREATE TABLE tb_emp4    -> (    -> 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_emp4;+--------+-------------+------+-----+---------+-------+| 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)在创建表时设置联合主键

所谓的联合主键,就是这个主键是由一张表中多个字段组成的。

比如,设置学生选课数据表时,使用学生编号做主键还是用课程编号做主键呢?如果用学生编号做主键,那么一个学生就只能选择一门课程。如果用课程编号做主键,那么一门课程只能有一个学生来选。显然,这两种情况都是不符合实际情况的。

实际上设计学生选课表,要限定的是一个学生只能选择同一课程一次。因此,学生编号和课程编号可以放在一起共同作为主键,这也就是联合主键了。

主键由多个字段联合组成,语法格式如下:

PRIMARY KEY [字段1,字段2,…,字段n]

注意:当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。

例 3

创建数据表 tb_emp5,假设表中没有主键 id,为了唯一确定一个员工,可以把 name、deptId 联合起来作为主键,SQL 语句和运行结果如下。

mysql> CREATE TABLE tb_emp5    -> (    -> name VARCHAR(25),    -> deptId INT(11),    -> salary FLOAT,    -> PRIMARY KEY(id,deptId)    -> );Query OK, 0 rows affected (0.37 sec)mysql> DESC tb_emp5;+--------+-------------+------+-----+---------+-------+| Field  | Type        | Null | Key | Default | Extra |+--------+-------------+------+-----+---------+-------+| name   | varchar(25) | NO   | PRI | NULL    |       || deptId | int(11)     | NO   | PRI | NULL    |       || salary | float       | YES  |     | NULL    |       |+--------+-------------+------+-----+---------+-------+3 rows in set (0.14 sec)

感谢各位的阅读!看完上述内容,你们对mysql建表时设置主键的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

字段 学生 数据 联合 课程 方法 数据表 语句 内容 多个 格式 语法 情况 结果 运行 关键 关键字 实际 数据库 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网佳科技有限公司 中关村互联网 科技集团 广州百单互联网科技有限公司 互联网科技行业发展 科技与互联网 青岛互联网科技公司 互联网科技公司电话 海南科技产业互联网平台 佳云科技和互联网广告 互联网科技与管理 南平创想时代互联网科技有限公司 互联网金融科技展 中国科技创新与世界互联网大会 明优互联网科技有限公司 无锡工业互联网科技有限公司 合肥互联网科技公司公章图片 张召忠谈中国互联网科技 广州互联网高科技取餐柜 吉林省码上互联网科技电话 互联网时代科技型公司的机会 上海睿民互联网科技有限公司 广州万易互联网科技有限公司 金融科技和互联网金融 深圳国际航运科技和互联网 宁夏众和广鑫互联网科技有限公司 互联网金融中的现代科技 工业互联网展湾科技股份有限公司 银川新华互联网科技学校是国营吗 长沙渺峰互联网科技有限公司 互联网科技手抄报图片
0