MySql primary key

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySql primary key

  • primary key ■ 用于设定主键。 ■ 主键就是一个表中数据的“关键值”,通过该关键值就可以找到该特定的数据行。 ■ 一个表的主键值不能重复(相等) ,比如文章表中的文章编号id, 比如用户表中的用户名。 ■ 主键字段必须有值(不能为空)。 ■ 一个表只能有一个主键(但一个主键可以是1个字段或2个以上的字段联合构成)


  • 主键设置的几种形式 mysql> create table test (id int primary key, name varchar(10)); mysql> desc test; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ mysql> create table test (id int, name varchar(10), primary key(id)); mysql> desc test; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+


  • 多字段主键的含义及设定


  • 含义:表结构里面不能通过一个字段作为定位主键,需要多个字段组合才能定位数据。
  • 设定:数据样例(成绩表),通过学生ID与科目作为联合主键查询学生每科成绩:

| 学生ID | 科目 | 成绩 | | ---- | ---- | ---- | | 1 | mysql | 90 | | 2 | php | 88 | | 1 | js | 70 | | 2 | ios | 89 |


mysql> create table test (id int, subject varchar(20), score tinyint unsigned, primary key(id, subject)); mysql> desc test; +---------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+---------------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | subject | varchar(20) | NO | PRI | NULL | | | score | tinyint(3) unsigned | YES | | NULL | | +---------+---------------------+------+-----+---------+-------+ 3 rows in set (0.02 sec) 上面创建的表中就有两个主键值了,分别为 id subject,注意看 Key 那一栏的 PRI 标识,查询就通过两个主键值查询即可,这里只是简单举例,实战还得自己看用于什么场景。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
11月前
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(4-2)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
24MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法(4-2) 学不会你来砍我!!!
|
XML 关系型数据库 MySQL
【MySQL异常】ExecutorException: Error getting generated key or setting result to parameter object
【MySQL异常】ExecutorException: Error getting generated key or setting result to parameter object
808 0
|
关系型数据库 MySQL 数据库
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
连接MySQL时报错:Public Key Retrieval is not allowed的解决方法
1960 1
|
关系型数据库 MySQL
Mysql 主键冲突(ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY')
Mysql 主键冲突(ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY')
1807 0
|
关系型数据库 MySQL 数据库
Mysqlbug-Could not create or access the registry key needed for the MySQL applicationto, TIMESTAMP w
Mysqlbug-Could not create or access the registry key needed for the MySQL applicationto, TIMESTAMP w
|
关系型数据库 MySQL 数据库
MySQL8报错:Public Key Retrieval is not allowed
MySQL8报错:Public Key Retrieval is not allowed
6405 1
|
关系型数据库 MySQL
MySQL创建表出现 Specified key was too long; max key length is 767 bytes
MySQL创建表出现 Specified key was too long; max key length is 767 bytes
452 2
|
关系型数据库 MySQL 数据库
Specified key was too long; max key length is 767 bytes导入mysql数据库表报错
Specified key was too long; max key length is 767 bytes导入mysql数据库表报错
1245 0
|
关系型数据库 MySQL
零基础带你学习MySQL—foreign key 外键(二十六)
零基础带你学习MySQL—foreign key 外键(二十六)
|
关系型数据库 MySQL
零基础带你学习MySQL—primary key主键(二十三)
零基础带你学习MySQL—primary key主键(二十三)

推荐镜像

更多