主键与唯一键详解:概念、区别与面试要点

主键与唯一键详解:概念、区别与面试要点

一、核心概念解析

1.1 主键(Primary Key)

主键是数据库表中用于唯一标识每一行记录的列或列组合,具有以下核心特性:

  • 唯一性:主键值在整个表中必须唯一,不允许重复
  • 非空性:主键列不允许包含NULL值
  • 不可变性:主键值一旦确立,原则上不应修改
  • 索引自动创建:大多数DBMS会自动为主键创建聚集索引(Clustered Index)

主键是关系型数据库的基石,它建立了表之间的引用完整性基础,是外键(Foreign Key)引用的目标。

1.2 唯一键(Unique Key)

唯一键是保证列或列组合值唯一的约束,主要特性包括:

  • 唯一性:与主键相同,保证值的唯一性
  • 可空性:允许包含NULL值(但多数DBMS中NULL值只能出现一次)
  • 多约束支持:一个表可以定义多个唯一键
  • 非聚集索引:通常自动创建非聚集索引(Non-clustered Index)

唯一键常用于业务上需要唯一性但不适合作为主键的场景,如用户邮箱、身份证号等。

二、关键技术区别

2.1 基础特性对比

特性主键(Primary Key)唯一键(Unique Key)
NULL值允许不允许允许(有限制)
数量限制每表仅一个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试准备-1

1.NodeJS的优缺点 优点:   高并发(最重要的优点)   适合I/O密集型应用 缺点:   不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的…

GO并发过高导致程序崩溃如何解决

#作者:曹付江 文章目录 1.并发过高导致程序崩溃2. 如何解决2.1 利用 channel 的缓存区2.2 利用第三方库 3 调整系统资源的上限3.1 ulimit3.2 虚拟内存(virtual memory) 1.并发过高导致程序崩溃 看一个非常简单的例子: func main() {var wg sync.WaitG…

Linux -- gdb/cgdb的认识和使用

预备知识 程序的发布⽅式有两种, debug 模式和 release 模式, Linux gcc/g 出来的⼆进制程 序,默认是 release 模式。 要使⽤gdb调试,必须在源代码⽣成⼆进制程序的时候, 加上 -g 选项,如果没有添加&#x…

window 显示驱动开发-Direct3D 呈现性能改进(四)

调用资源创建、映射和取消映射函数的行为更改 对于 WDDM 1.3 及更高版本驱动程序实现的这些函数,Direct3D 运行时为映射默认方案提供一组受限的输入值。 这些受限值仅适用于支持功能级别 11.1 及更高版本的驱动程序。 CreateResource (D3D11) 函数— 这些输入 D3…

3.python操作mysql数据库

前言:在现代应用程序中,数据库扮演者至关重要的角色。mysql是一个流行的关系型数据库管理系统,广泛应用于各种规模的应用中。在pytho中,我们可以通过连接库与mysql数据库进行交互,实现数据的增删改查操作。与此同时&am…

day023-网络基础与OSI七层模型

文章目录 1. 网络基础知识点1.1 网络中的单位1.2 查看实时网速:iftop1.3 交换机、路由器 2. 路由表2.1 查看路由表的命令2.2 路由追踪命令 3. 通用网站网络架构4. 局域网上网原理-NAT5. 虚拟机上网原理6. 虚拟机的网络模式6.1 NAT模式6.2 桥接模式6.3 仅主机模式 7.…

DeepSeek智能对话助手项目

目录: 1、效果图2、实现代码3、温度和TopK的作用对比 1、效果图 2、实现代码 # import gradio as gr# def reverse_text(text): # return text[::-1]# demogr.Interface(fnreverse_text,inputs"text",outputs"text")# demo.launch(share&q…

视觉中国:镜头下的中国发展图景

2025年5月下旬,从北国草原到江南水乡,从文化遗产到科技创新,中国大地上演着一幕幕生机勃勃的图景。河北张家口的沙狐幼崽与湿地生态和谐共生,湖北襄阳的茶园雕琢出诗意田园;北京殷商文创的活力、沈阳文物情景剧的创意&…

LabVIEW 中内存释放相关问题

在LabVIEW 编程领域,内存管理是一个关键且复杂的议题。我们常常关注 LabVIEW 如何将内存释放回操作系统(OS),以及是否有方法确保在特定数据结构(如队列、变体属性、动态数据引用 DVR 等)销毁、删除或清空后…

基于正点原子阿波罗F429开发板的LWIP应用(4)——HTTP Server功能

说在开头 正点原子F429开发板主芯片采用的是STM32F429IGT6,网络PHY芯片采用的是LAN8720A(V1)和YT8512C(V2),采用的是RMII连接,PHY_ADDR为0;在代码中将会对不同的芯片做出适配。 CubeMX版本:6.6.1; F4芯片组…

设计模式-结构型模式(详解)

适配器模式 将一个类的接口转换成客户端期望的另一个接口,解决接口不兼容问题。 适配器模式由四部分组成: 客户端:即需要使用目标接口的类 目标接口 需要适配的类,也就是已经存在好的功能,但客户端通过目标接口没办…

银河麒麟操作系统下载

产品试用申请国产操作系统、麒麟操作系统——麒麟软件官方网站 下载页面链接如上,申请试用即可。 申请试用填写后提交,界面就变成了这样,可以挑选适合自己的版本。 海思麒麟9006C版,如下: 本地下载:Kylin…

[CARLA系列--03]如何打包生成CARLA 0.9.15的非编辑版(地图的加载与卸载)

前两篇文章介绍了如何去安装可编辑版的CARLA 0.9.15,这个完整的工程文件实在是太大了,大概消耗了100个G的磁盘空间,当在进行一个CARLA项目的时候,不利于在每个开发电脑都去安装部署一套CARLA 0.9.15的源码,所以把自己这…

【机器学习基础】机器学习入门核心算法:朴素贝叶斯(Naive Bayes)

机器学习入门核心算法:朴素贝叶斯(Naive Bayes)) 一、算法逻辑1.1 基本概念1.2 基本流程 二、算法原理与数学推导2.1 贝叶斯定理2.2 朴素贝叶斯分类器2.3 不同分布假设下的概率计算2.3.1 高斯朴素贝叶斯(连续特征&…

云服务器系统盘满了,但是其他正常,是否可能是被攻击了

目录 问题背景分析解决系统盘满的问题解决结果 问题背景 今天登录我的云服务器看了眼,发现系统盘满了,但是其他正常 分析 1、首先要确认是否是被攻击: top / htop (安装:yum install htop 或 apt install htop):…

双因子COX 交互 共线性 -spss

SPSS 简要界面操作步骤(针对双因子 COX 分析) 1. 数据准备 变量格式:确保数据已整理为以下格式(示例): 时间变量(如 Time_to_Recurrence)结局变量(如 Recurrence:1=复发,0=未复发)预测变量(CSPG4_HSCORE、FAM49B_Status 二分类变量)协变量(如 Lesion_Size、Pat…

【MySQL】第12节|MySQL 8.0 主从复制原理分析与实战(二)

一、组复制(MGR)核心概念 1. 定义与定位 目标:解决传统主从复制的单点故障、数据不一致问题,提供高可用、高扩展的分布式数据库方案。基于 GTID:依赖全局事务标识符(GTID)实现事务一致性&…

React 泛型组件:用TS来打造灵活的组件。

文章目录 前言一、什么是泛型组件?二、为什么需要泛型组件?三、如何在 React 中定义泛型组件?基础泛型组件示例使用泛型组件 四、泛型组件的高级用法带默认类型的泛型组件多个泛型参数 五、泛型组件的实际应用场景数据展示组件表单组件状态管…

如何手搓一个查询天气的mcp server

环境配置烦请移步上一篇博客 这里直接步入主题,天气查询的api用的是openweather,免费注册就可以使用了 每天1000次内使用时免费的,大概的api 如下 https://api.openweathermap.org/data/2.5/weather?qBeijing,cn&APPID注册后可以拿到一个…

深入解析计算机网络核心协议:ARP、DHCP、DNS与HTTP

文章目录 一、ARP(地址解析协议)1.1 定义与功能1.2 工作原理1.3 应用场景1.4 安全风险与防御 二、DHCP(动态主机配置协议)2.1 定义与功能2.2 工作原理2.3 应用场景2.4 优缺点与安全建议 三、DNS(域名系统)3…