当前位置: 首页 > ai >正文

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

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

一、核心概念解析

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.xdnf.cn/news/9175.html

相关文章:

  • 【Bluedroid】init_stack_internal 函数全流程源码解析
  • Qt 多线程环境下的全局变量管理与密码安全
  • 电路图识图基础知识-主电路和辅助电路(七)
  • 华为FreeArc能和其他华为产品共用充电线吗?
  • C# 变量与常量完全指南:从基础到高级应用
  • 融智学“新五常”框架:五维方式的重构与协同
  • 十一、Samba文件共享服务
  • Nest全栈到失业(一):Nest基础知识扫盲
  • K8s入门(4)Kubernetes的技术演进
  • 2.1 Maven项目架构管理工具
  • Tomcat服务器
  • 误差反向传播法
  • 【Sqoop基础】Sqoop生态集成:与HDFS、Hive、HBase等组件的协同关系深度解析
  • CMake指令:file()
  • Pydantic 学习与使用
  • WPF【11_8】WPF实战-重构与美化(UI 与视图模型的联动,实现INotifyPropertyChanged)
  • 三防平板科普:有什么特殊功能?应用在什么场景?
  • UE源代码——径向爆炸伤害计算函数(Grenade手雷爆炸功能)
  • C++ 中的函数包装:std::bind()、std::function<>、函数指针与 Lambda
  • ComfyUI 文生图,绘图要求中 正向提示词、负向提示词 有什么区别,webp又是什么格式 comfyui 那么喜欢它
  • 冯 • 诺依曼体系结构
  • 在 Unity 中,Start 方法直接设置 RectTransform 的位置,时出现问题,与预计位置不匹配。
  • Vue 3.0 中provide常见使用场景
  • 一个开源的多播放源自动采集在线影视网站
  • GitCode镜像仓库批量下载开发实录
  • 【Redis】过期键删除策略,LRU和LFU在redis中的实现,缓存与数据库双写一致性问题,go案例
  • 第12次08: 省市县区三级联动收货地址
  • 沉石鱼惊旋
  • CVE-2021-44228源码分析与漏洞复现
  • Redis学习打卡-Day7-高可用(下)