外键
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
主键、外键、索引的区别
主键、外键和索引的区别?
定义:
主键:唯一标识一条记录,不能有重复的,不允许为空
外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值
索引:该字段没有重复值,但可以有一个空值
作用:
主键:用来保证数据完整性
外键:用来和其他表建立联系用的
索引:是提高查询排序的速度
个数:
主键:主键只能有一个
外键:一个表可以有多个外键
索引:一个表可以有多个唯一索引