> 文章列表 > mysql创建外键的sql语句

mysql创建外键的sql语句

mysql创建外键的sql语句

MySQL创建外键的概述

MySQL是一种广泛使用的关系型数据库,它支持外键约束,这个特性允许我们在不同的数据表中建立关联。通过创建外键,我们可以实现跨表查询,保证数据的完整性等,本篇文章将讲解MySQL如何创建外键。

创建外键的前置条件

在MySQL中,创建外键需要满足一些前置条件:

  • 被参考的表必须已经存在,而且有主键或唯一约束。
  • 参考表和被参考的表必须使用相同的存储引擎。
  • 被参考表和参考表必须在同一个数据库内。

创建外键的语法

下面是MySQL创建外键的语法:

ALTER TABLE child_tableADD CONSTRAINT fk_name FOREIGN KEY (child_column) REFERENCES parent_table(parent_column);

其中,`child_table` 表示子表的名字,`fk_name` 表示外键的名字,可以任意设置,`child_column` 表示子表中的外键列,`parent_table` 表示父表的名字,`parent_column` 表示父表中的主键列或唯一列。

创建外键示例

下面以`school`数据库为例,创建学生表`students`和班级表`classes`,并使用外键约束建立学生与班级的关联。

CREATE DATABASE school;USE school;CREATE TABLE classes (  id INT PRIMARY KEY,  name VARCHAR(20) UNIQUE);CREATE TABLE students (  id INT PRIMARY KEY,  name VARCHAR(20),  age INT,  class_id INT,  FOREIGN KEY (class_id) REFERENCES classes(id));

上面的SQL语句中,`classes`表用于存储班级信息,将`id`列设为主键,`name`列设为唯一。`students`表用于存储学生信息,将`id`列设为主键,`class_id`列设为外键,用于关联班级表中的`id`列。在`students`表中,使用 `FOREIGN KEY (class_id) REFERENCES classes(id)` 表示建立外键关联。

删除外键

MySQL中可以使用`ALTER TABLE`语句删除外键:

ALTER TABLE child_table DROP FOREIGN KEY fk_name;

其中,`child_table` 表示子表名称,`fk_name` 表示外键名称。

总结

本篇文章介绍了MySQL创建外键的语法及示例,提到了创建外键的前置条件,同时也讲解了如何删除外键。外键约束可以保证数据的完整性,是数据库设计中重要的一环。