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

06-02 1133阅读

目录

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就像给数据库加了个“快速查找表”。

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

3.Key和Index的区别

目的:

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

Index主要用于查询优化。 

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

4. Primary Key(主键)

什么是主键?

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

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

特点:

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

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

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

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

    举例说明:

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

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

    5. Foreign Key(外键)

    什么是外键?

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

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

    特点:

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

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

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

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

      6.主键和外键的关系

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

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

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

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

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

        箭头表示外键关系: 

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

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

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

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

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

        1. 第一个闪电按钮 

        功能:执行整个 SQL 脚本。 

        快捷键:Ctrl + Shfit + Enter

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

        2. 第二个闪电按钮 

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

        快捷键:Ctrl  + Enter

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

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

        3. 第三个闪电按钮 

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

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

        使用场景:

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

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

          4.手形按钮 

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

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

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

           

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码