欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > SQL:Primary Key(主键)和Foreign Key(外键)

SQL:Primary Key(主键)和Foreign Key(外键)

2025/4/27 18:10:30 来源:https://blog.csdn.net/2402_88047672/article/details/147050440  浏览:    关键词:SQL:Primary Key(主键)和Foreign Key(外键)

目录

1. Key(键)

2. Index(索引)

3.Key和Index的区别

4. Primary Key(主键)

5. Foreign Key(外键)

6.主键和外键的关系

温馨提示: 闪电按钮不同的执行功能

首先,我想先介绍一下简单介绍SQL中的Key(键)和Index(索引)。

1. Key(键)

基本概念

定义:Key是数据库表中用于标识或关联数据的特殊列(或列组合)。它像一个“标签”或“身份证”,帮助数据库管理记录。

通俗解释:想象一个大图书馆,书上有编号(Key),用来快速找到某本书或确认它是唯一的。Key是数据库里给每行数据贴上的“识别码”。

2. Index(索引)

基本概念

定义:Index是数据库为表中的一列(或多列)创建的特殊数据结构,加快数据检索速度。

通俗解释:想象图书馆的书目索引,书按编号排序,查书时不用翻遍所有书架,直接找索引上的页码。Index就像给数据库加了个“快速查找表”。

3.Key和Index的区别

目的:

Key(主键、外键、唯一键)主要用于数据完整性和关系。 

Index主要用于查询优化。 

比喻:Key像身份证和户口簿,Index像图书馆的索引卡。 

4. Primary Key(主键)

什么是主键?

定义:主键是一个表中用来唯一标识每行记录的列或列组合。就像每个人的身份证号码,保证没有重复。

通俗解释:想象一个班级花名册,每个人都有一个唯一的学号(比如001、002),主键就是这个学号,确保找不到两个“张三”混淆。 

特点:

  • 唯一性:每行数据的主键值必须不同。

  • 非空:主键不能是NULL,必须有值。

  • 不可变:一旦设好,主键值一般不该改(改了会影响关联)。

举例说明:

这是一张个人信息表。表中分别有ID,名字,姓氏,性别,电话 。从表中我们可以看到,ID是这张表的主键,因为其他列中都有重复的值。它们的值无效,或者是重复的。

5. Foreign Key(外键)

什么是外键?

定义:外键是表A中的一列(或多列),它的值必须指向表B的主键,建立了两表之间的关系。 

通俗解释:想象一个班级花名册(表A)和成绩表(表B),成绩表里有个“学生ID”列,指向花名册里的“学号”(主键),这样就能知道哪个成绩属于哪个学生。外键就像“关系纽带”。 

特点:

  • 引用性:外键值必须是它所引用的主键值之一,或者是NULL(如果允许)。

  • 关联性:通过外键,多个表可以“联手”管理数据。

带有主键的表称为父表(parent table),带有外键的表称为子表(child table) 。

6.主键和外键的关系

  • 联系:外键依赖主键,外键的值必须来自它引用的表的主键,形成了表之间的“父子关系”。

  • 比喻:主键是“户主”的身份证,外键是“家庭成员”持有的户主身份证号码,靠这个联系起家庭(表)。 

这张表显示了订单,客户,产品之间的关系。这个设计模拟了一个咖啡店的订单系统,客户可以购买产品,订单记录谁买了什么。

箭头的方向显示链接,从父表的主键指向子表的外键。 

箭头表示外键关系: 

orders.customer_id → customers.id:订单指向客户。 

orders.product_id → products.id:订单指向产品。 

温馨提示: 闪电按钮不同的执行功能

 在 MySQL Workbench 中,工具栏上有三个与执行 SQL 查询相关的闪电按钮(lightning bolt buttons),它们的功能各不相同。

1. 第一个闪电按钮 

功能:执行整个 SQL 脚本。 

描述:这个按钮会运行 SQL 查询面板(SQL Query Panel)中当前所有内容,无论你是否选中了特定部分。只要面板中有 SQL 语句,它就会从头到尾执行所有语句。 

2. 第二个闪电按钮 

 功能:执行当前选中的 SQL 语句或高亮部分。

描述:这个按钮只执行你在 SQL 查询面板中手动选中的部分。如果没有选中任何内容,它会执行光标当前所在的单个语句(从光标位置到语句的末尾)。 

使用场景:当你只想测试或运行脚本中的一部分时非常有用。例如,你有一个长脚本,但只想运行其中一个 SELECT 查询。 

3. 第三个闪电按钮 

功能:对当前光标下的语句执行 EXPLAIN 分析。 

描述:这个按钮不会直接执行 SQL 语句,而是生成该语句的执行计划(Execution Plan)。执行计划显示 MySQL 如何执行查询,包括使用的索引、表扫描方式等,帮助你优化查询性能。 

使用场景:

  • 当你想分析某个查询的性能瓶颈或优化 SQL 语句时,使用这个按钮。

  • 例如,如果你怀疑某个 SELECT 查询运行缓慢,可以用 EXPLAIN 检查它是否使用了正确的索引。

4.手形按钮 

功能:停止执行的查询。 如果你正在运行一个查询,该查询正在检索成千上万的数据,它可以停止查询而不是继续等待。

应用场景:只在查询时才有效,如果正常状态下点击,不会有任何事发生。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词