数据库新手必知!轻松学习SQL外键约束的核心原理和实用技巧

SQL 约束-外键约束

简介

外键约束(FOREIGN KEY,缩写 FK)是用来实现数据库表的参照完整性的。它是指表中某个字段的值依赖于另一张表中某个字段的值,而被依赖的字段必须且有主键约束或者唯一约束。被依赖的表通常称之为父表或者主表,设置外键约束的表称为子表或从表。

相关概念
  • 主键:可以唯一标识一条记录的列

  • 外键:从表中与主表的主键对应的字段

  • 主表:外键所指向的表,约束其他表的表

  • 从表:外键所在的表,被约束的表

  • 价值:建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性

建立外键约束

  • 创建表时添加外键约束:CONSTRAINT [外键约束的名称] FOREIGN KEY (外键字段) REFERENCES [主表名称(主键字段)]

  • 添加外键约束:ALTER TABLE [表名] ADD CONSTRAINT [外键约束的名称] FOREIGN KEY [外键字段] REFERENCES [主表名称(主键字段)]


#创建一个关联到主表的从表
CREATETABLEemp_part(
emp_idINTPRIMARYKEYAUTO_INCREMENT,
enameVARCHAR(20),
ageINT,
genderVARCHAR(10),
dept_idINT,
-- 添加外键约束
CONSTRAINTemp_deptFOREIGNKEY(dept_id)REFERENCESdept(id)
);
#插入一条非法数据
INSERTINTOemp_partVALUES(1,'cindy',20,'female','4')

删除外键约束

  • 语法:

  • ALTER TABLE [表名] DROP FOREIGN KEY [外键约束名称]

 

  • 注意事项

    • 从表外键数据类型必须与主表的主键一致

    • 删除数据时,需先删除从表数据再删除主表的数据

    • 添加数据时先添加主表数据,再添加从表数据

    • #删除外键约束
      
      ALTERTABLEemp_partDROPFOREIGNKEYemp_dept
      
      #插入一条非法数据
      INSERTINTOemp_partVALUES(1,'cindy',20,'female','4')
      
      SELECT*FROMemp_part
      
      #向主表中插入一条数据
      INSERTINTOdeptVALUES(2,'运营部','张三','北京')
      #向从表中插入一条数据
      INSERTINTOemp_partVALUES(1,'cindy',20,'female','2')
      #删除主表中的数据
      DELETEFROMdeptWHEREid=2
      级联删除
    • 删除主表数据的同时,也删除掉从表中相关的数据

      • ON DELETE CASCADE

      • #创建员工信息表并添加级联删除的外键约束
        CREATETABLEemp_part(
        emp_idINTPRIMARYKEYAUTO_INCREMENT,
        enameVARCHAR(20),
        ageINT,
        genderVARCHAR(10),
        dept_idINT,
        -- 添加外键约束
        CONSTRAINTemp_deptFOREIGNKEY(dept_id)REFERENCESdept(id)
        -- 设置允许级联删除
        ONDELETECASCADE
        );
        #向员工信息表中添加一条数据
        INSERTINTOemp_partVALUES(1,'cindy',20,'female','2')
        #删除主表中部门id=2的部门
        DELETEFROMdeptWHEREid=2
        #查看从表中的数据是否同时被删除
        SELECT*FROMemp_part

        SQL 中的外键约束是一种参照完整性约束,它用于确保两个表之间的数据一致性,构建了一种父子关系。当在子表中插入或更新数据时,外键约束确保所提供的外键值必须在父表的相应主键或唯一键值范围内。如果父表中不存在相应的值,则操作将失败,从而确保了数据的完整性和一致性。

      • 在测试领域,技术的提升固然至关重要,然而,同样不可忽视的是测试管理软技能的必要性。拥有卓越的测试技术能力是基石,但在现代软件开发环境中,仅凭技术本身难以应对项目的复杂性和团队协作的挑战。测试管理软技能的提升可以为技术高工打开更广阔的发展空间。

      • 首先,测试管理能力使你能够更好地规划、组织和执行测试策略。通过学习测试管理,你将能够更有效地制定测试计划、分配资源,并合理安排测试活动,从而提高项目的整体效率。


      • 其次,软技能的提升将增强你在团队中的领导力和沟通能力。良好的测试管理者不仅能够理解技术细节,还能够与不同职能团队有效沟通,推动团队朝着共同的目标前进。这种全面的素养在职业发展中至关重要,有助于建立良好的团队协作氛围。


      • 最后,测试管理软技能的提升有助于更好地理解业务需求和用户期望。通过深入了解项目的背景和目标,你将能够更有针对性地设计和执行测试,确保产品不仅在技术上优秀,还能够满足用户的期望,提升整体用户体验。


      • 因此,作为技术高工,将精力投入到测试管理软技能的学习和提升中,不仅有助于个人职业发展,也将为团队和项目的成功贡献更大的价值。


      • 霍格沃兹测试管理训练营是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划,推荐大家了解~

 

 

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值