主键(primary key)和唯一键(unique) 知识点总结

主键(primary key)和唯一键(unique) 知识点总结

主键(Primary key)

概念

主键用于唯一标识表中的每一条数据。

主键的特征:

不能重复, 不能为空。

示例

create table stu1(

id int auto_increment primary key, <------#主键

name varchar(20)

);

注意点:

auto_increment的字段必须是主键, 但是主键不一定是auto_increment的。

一个表只能有一个主键, 但是主键可以是1个或多个字段组成。

auto_increment 自增长

自增长字段的值从1开始, 每次递增1。自增长字段数据不可以重复, 合适生成唯一的id。自增长字段可以使用null或者default来设置值。自增长字段必须是主键 (primary key)。

错误示例

错误示例1

create table stu2(

id int auto_increment, <------#会报错, 自增长的字段必须是主键

name varchar(20)

);

错误示例2

create table stu3(

id1 int primary key,

id2 int primary key, <------#会报错,一张表只能有一个主键

name varchar(20)

);

正确示例

添加主键的第一种方式

create table stu4(

id1 int primary key, <------#直接指定主键字段

id2 int,

name varchar(20)

);

添加主键的第二种方式

create table stu5(

id1 int,

id2 int,

name varchar(20),

primary key(id1) <------#语句最后指定主键字段

);

添加主键的第三种方式

create table stu6(

id1 int,

id2 int,

name varchar(20)

);

没有主键的情况下添加主建

alter table stu6 add primary key(id1); <------#表创建完成后添加主键

联合主建

create table stu7(

id1 int,

id2 int,

name varchar(20),

primary key(id1,id2) <------#主键由两个字段组成

);

#不是指定两个主键, 一个primary key就是指定一个主键

#这里只出现了一个primary key, 所以只指定了一个主键

#只不过这个主键比较特殊, 是由两个字段共同组成的

联合主键的应用场景:

如果表中无论哪一个字段都无法保证数据的唯一性,可以使用多个字段组合在一起用来保证数据的唯一性。

企业开发中如何选择主键?

最少性: 尽量选择一个字段作为主键。

稳定性: 尽量选择更新少的字段作为主键。

尽量选择整数类型的字段作为主键。

结论: 搞一个id字段类型为int, 设置自动增长, 作为主键。

唯一键(unique)

作用

避免添加重复数据, 也就是说如果想保证某一个字段的值永远不重复, 那么就可以将这个字段设置为唯一键。

注意点:

唯一键不是主键, 主键有一个特点是不能重复, 但是唯一键不等于主键。

一张表中只能有一个主键, 但是一张表中可以有多个唯一键。

没有添加唯一键

create table if not exists stu1(

id int auto_increment primary key,

name varchar(20) <------ #可以添加重复数据

);

添加唯一键

1.添加唯一键的第一种方式

create table if not exists stu2(

id int auto_increment primary key,

name varchar(20) unique <------#建表时字段后面添加unique,name不可以添加重复数据

);

2.添加唯一键的第二种方式

create table if not exists stu(

id int auto_increment primary key,

name varchar(20),

unique key(name) <------#语句最后添加,name不可以添加重复数据

);

3.添加唯一键的第三种方式

create table if not exists stu(

id int auto_increment primary key,

name varchar(20)

);

alter table stu add unique(name); <------#建表完成指定唯一键

4.添加多个唯一键方式

create table if not exists stu11(

id int auto_increment primary key,

name varchar(20) unique,

score int unique

);

-------此时name和score都是唯一键。

删除唯一键

语法

alter table 表名 drop index 唯一键字段名;

示例

alter table stu11 drop index name;

相关创意

姤卦:解读易经第44卦姤卦代表什么
bt365网址

姤卦:解读易经第44卦姤卦代表什么

📅 08-19 👁️ 4233
SPRING 專櫃/門市
注册送365

SPRING 專櫃/門市

📅 07-24 👁️ 7730
学编程用什么笔记本电脑比较好?笔记本电脑挑选指南!
世界杯中的那些胖子,最出名的胖子肥罗!
bt365网址

世界杯中的那些胖子,最出名的胖子肥罗!

📅 08-04 👁️ 8466
[汇总]2025铁血虎贲夏令营课程
365bet体育在线官

[汇总]2025铁血虎贲夏令营课程

📅 07-20 👁️ 8530
excel怎么让数据更新变动
bt365网址

excel怎么让数据更新变动

📅 08-24 👁️ 3635
iPhone照片打馬賽克技巧:3個快速辦法分享!
上海海港武磊、蒋光太建功,中国男足友谊赛2:0战胜巴勒斯坦队