外键

在这里插入图片描述
在这里插入图片描述
Teacher_id就是student的外键
Teacher是主表,student是子表(从表)

外键就是一个表中的一个字段引用了另一个表中的主键,引用的表叫做子表,被引用的表叫做主表,外键是一种约束,描述的是表之间的关系。

  • 删除主表数据的时候有外键关联的对应从表数据也会被删除
    • 这是从表的外键
      在这里插入图片描述
  • 添加外键sql
    /**
     * 添加外键
     *
     * @param pkTableName 主键表
     * @param fkTableName 外键表
     * @param pkField     主键
     * @param fkField     外键
     * @param foreignKeyName  外键名
     */
 String sql = " ALTER TABLE " + fkTableName + " ADD CONSTRAINT "
                + foreignKeyName + " FOREIGN KEY (" + fkField + ") REFERENCES "
                + pkTableName + " (" + pkField + ") ON DELETE CASCADE";
  • 删除外键sql
   /**
     * 删除外键
     *
     * @param tableName 表名
     * @param keyName   外键名
     */
  String sql = "ALTER   TABLE   " + tableName.toLowerCase() + "   DROP   CONSTRAINT  "
                + keyName;

讲师:https://zhidao.baidu.com/usercenter?uid=db874069236f25705e79f91c&role=pgc

主键、外键、索引的区别

主键、外键和索引的区别?
定义:
主键:唯一标识一条记录,不能有重复的,不允许为空

外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值

索引:该字段没有重复值,但可以有一个空值

作用:

主键:用来保证数据完整性

外键:用来和其他表建立联系用的

索引:是提高查询排序的速度

个数:

主键:主键只能有一个

外键:一个表可以有多个外键

索引:一个表可以有多个唯一索引

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐