MySQL简述 MySQL 的主键 PRIMARY KEY 和唯一键 UNIQUE INDEX

Posted 小雨青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL简述 MySQL 的主键 PRIMARY KEY 和唯一键 UNIQUE INDEX相关的知识,希望对你有一定的参考价值。

目录

一、前言

本文你将会学到

  • 什么是主键 PRIMARY KEY ?
  • 主键必须是唯一的吗?
  • 如何设置表的主键?
  • 主键和唯一索引有什么区别?

二、什么是主键 PRIMARY KEY ?

主键是唯一标识表中每一行的一列或一组列。主键遵循以下规则:

  • 主键必须包含唯一值。如果主键由多个列组成,则这些列中的值组合必须是唯一的。
  • 主键列不能有值。任何插入主键列的尝试都将导致错误。请注意,mysql 隐式地将约束添加到主键列。
  • 一个表只能有一个主键。

由于MySQL处理整数的速度更快,因此主键列的数据类型应该是整数,例如。并且应确保主键的整数类型的值范围足以存储表可能具有的所有可能行。

三、主键必须是唯一的吗?

是的,主键必须是唯一的。

四、如何设置表的主键?

我们可以在创建表的时候设置主键。

如果主键有一列,则可以将该约束用作列约束

CREATE TABLE table_name( 
primary_key_column datatype PRIMARY KEY, 

);

也可以使用表约束

CREATE TABLE table_name ( 
    primary_key_column datatype, 

    PRIMARY KEY(primary_key_column)
);

当主键有多个列时,必须将约束用作表约束

CREATE TABLE table_name ( 
primary_key_column1 datatype, 
primary_key_column2 datatype, 

PRIMARY KEY ( column_list ) );

更新表结构的时候也可以设置主键。

ALTER TABLE table_name
ADD PRIMARY KEY(column_list);

五、主键和唯一索引有什么区别?

  • PRIMARY KEY 不能为 NULL
  • UNIQUE INDEX 可以为 NULL

如何添加唯一索引。

ALTER TABLE users
ADD UNIQUE INDEX username_unique (username ASC) ;

以上是关于MySQL简述 MySQL 的主键 PRIMARY KEY 和唯一键 UNIQUE INDEX的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中的主键请求

MySQL一些简述

MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有啥区别?各适用于啥场合?

零基础带你学习MySQL—primary key主键(二十三)

mysql的主键是自动增长的,oracle的主键是起啥作用的

mysql primary key有啥作用?