DBMS 中的外键

  • Post category:database

下面是关于DBMS中外键的详细攻略:

什么是外键?

外键是一种约束条件,用于确保两个表之间的相关性。一个表的外键列指向另一个表的主键列,这样可以确保在插入、更新、删除数据时,只能对那些存在于主表中的数据进行操作。

如何创建外键?

在创建表时,可以在定义列的同时定义外键。例如,假设我们要创建一个存储订单信息(包括订单号和客户ID)的表,以及存储客户信息的表,我们可以通过以下语句创建这两个表:

CREATE TABLE orders (
  order_id int PRIMARY KEY,
  customer_id int,
  FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);

CREATE TABLE customers (
  customer_id int PRIMARY KEY,
  name varchar(255)
);

在上面的例子中,orders表中的customer_id列是外键,它参考了customers表中的customer_id列。在定义外键时使用了FOREIGN KEY关键字,后面紧跟着括号,括号中是引用主表的主键列,接着使用REFERENCES关键字指明要参考哪个表、哪个列。

如何修改外键?

可以使用ALTER TABLE语句来修改外键。例如,我们要将orders表中的外键customer_id改为参考users表中的主键user_id:

ALTER TABLE orders
DROP FOREIGN KEY <外键名称>;

ALTER TABLE orders
ADD CONSTRAINT <外键名称> FOREIGN KEY (`customer_id`) REFERENCES `users` (`user_id`);

在修改外键时,需要先使用DROP FOREIGN KEY语句删除当前的外键,然后使用ADD CONSTRAINT语句添加新的外键,同时指定要参考的表和列。

如何删除外键?

可以使用ALTER TABLE语句来删除外键。例如,我们要删除orders表中的外键:

ALTER TABLE orders
DROP FOREIGN KEY <外键名称>;

使用ALTER TABLE语句,指明要删除哪个表的外键,并使用DROP FOREIGN KEY语句来删除外键。

总结一下,创建外键需要指定引用主表的主键列、参考哪个表哪个列,修改外键需要先删除当前的外键,然后添加新的外键,删除外键需要指明要删除哪个表的哪个外键。