钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读1166974
首页 SQL 正文内容

sql外键约束的语法

钟逸 SQL 2025-08-19 17:20:49 3

在外键约束中,一个表中的列引用另一个表中的主键或唯一约束,以确保数据的一致性。外键约束语法如下:

ALTER TABLE child_table ADD FOREIGN KEY (column_name) REFERENCES parent_table (column_name)

child_table 是引用父表的主键的表。

column_name 是子表中引用父表主键的列。

parent_table 是包含子表引用的主键的表。

ON DELETE 和 ON UPDATE 子句

外键约束还支持 ON DELETEON UPDATE 子句,用于指定当父表中引用的列发生更改或删除时,子表中的相关数据将如何处理。语法如下:

ALTER TABLE child_table ADD FOREIGN KEY (column_name) REFERENCES parent_table (column_name)

ON DELETE CASCADE

ON UPDATE CASCADE

ON DELETE CASCADE:如果父表中引用的行被删除,则子表中引用该行的所有行也将被删除。

ON UPDATE CASCADE:如果父表中引用的行被更新,则子表中引用该行的所有行也将更新。

示例

考虑以下示例:

CREATE TABLE students (

id INT PRIMARY KEY,

name VARCHAR(255) NOT NULL

);

CREATE TABLE courses (

id INT PRIMARY KEY,

name VARCHAR(255) NOT NULL

);

ALTER TABLE students ADD FOREIGN KEY (course_id) REFERENCES courses (id) ON DELETE CASCADE;

在这个示例中,students 表的 course_id 列引用 courses 表的主键 id。如果 courses 表中任何引用的课程被删除,则 students 表中引用该课程的所有学生记录也将被删除。

优点

外键约束提供以下优点:

**数据完整性:**确保子表中的数据与父表中的数据一致,防止出现孤立或无效的行。

**级联更新和删除:**当父表中的数据发生更改时,自动更新或删除子表中的相关数据,简化数据维护。

**数据库结构检查:**有助于验证数据库结构的一致性,防止引用不存在或无效的表或列。

文章目录
    搜索