下面是关于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语句来删除外键。
总结一下,创建外键需要指定引用主表的主键列、参考哪个表哪个列,修改外键需要先删除当前的外键,然后添加新的外键,删除外键需要指明要删除哪个表的哪个外键。