SQL外键约束

外键约束

  • 一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键)
  • FOREIGN KEY 约束用于预防破坏表之间连接的动作
  • FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一

通过两个表举例外键:
student表
在这里插入图片描述
class表
在这里插入图片描述

  • student表里的cid作为外键指向class表里的id
  • student表里的cidstudent表里的外键
  • class表里的idclass表里的主键

注意:

  • 给表studentcid赋值时这个值必须存在于表classid里,例如id的值有1和2,如果赋值给cid的值是3,那么就会报错
  • 如果删除id字段或修改id字段的值时,先判断cid里的值是否存在此id字段的值,如果存在则会报错

添加外键约束

  • 创建表时添加外键约束

    [CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]

  • 代码示例
    CREATE TABLE student(
    		id int(10) PRIMARY key,
    		NAME	varchar(10),
    		cid int(10),
    		CONSTRAINT fk_cid FOREIGN KEY (cid) REFERENCES class(id)
    );
    
  • 给已存在表的字段添加外键约束

    ALTER TABLE 表名 ADD CONSTRAINT (外键名字) FOREIGN KEY (外键字段名) REFERENCES 外表表名(主键字段名);

  • 代码示例
    ALTER TABLE student ADD	CONSTRAINT fk_cid FOREIGN KEY (cid) REFERENCES class(id);
    

删除外键约束

ALTER TABLE student DROP FOREIGN KEY 外键名;

代码示例

ALTER TABLE student DROP FOREIGN KEY fk_cid;

猜你喜欢

转载自blog.csdn.net/weixin_44604586/article/details/107578113