美文网首页
数据库外键

数据库外键

作者: 张不二01 | 来源:发表于2017-07-15 21:51 被阅读51次

主键:一个表中确定一条记录的不可重复的表示,比如,一条记录包括身份证号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

外键:用于表与表之间的关联,用于保持数据的一致性。从表外键的值是对主表主键值的引用,比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

其中主键在哪个表中,该表就是主表

一,外键的基本操作:添加外键和删除外键
  • 1,声明(添加)外键约束
alter table 从表 add [constraint] [外键名称] foreign key () references 主表 (主表的主键);
#[外键名称]  用于删除外键约束,一般建议“_fk”结尾。

alter table product add constraint  product_category_fk  foreign key (category_id) references category (cid);

#当然,也可以声明外键名称,如下,但是这样没办法删除外键
alter table product add foreign key (category_id)  references category (cid);

  • 2,删除外键
alter table 从表 drop foreign key 外键名称;
alter table product drop foreign key product_category_fk;
二,一对多关系外键:

原则:在多的一方创建一个字段,该字段作为外键,指向一的一方的主键!如上案例里面,产品是多的一方,种类是一的一方,在产品中创建category_id指向种类的主键cid

alter table product add constraint  product_category_fk  foreign key (category_id) references category (cid);

或者

alter table product add foreign key (category_id)  references category (cid);
三,多对多关系外键:

原则:需要创建第三张表,作为从表,中间表至少有两个字段,这两个字段分别作为外键指向各自一方多主键。

Snip20170715_3.png
  • 假设上图中学生表为stu, 课程表是course, 中间的那张表为stu_course:
alter table stu_course add constraint stu_course_stu_fk foreign key (sno)  references stu (sid);

alter table stu_course add  constraint stu_course_course_fk  foreign key (cno)  references course (cid);

相关文章

  • 互联网应用数据库设计的性能考虑

    数据库外键的使用 外键解决的是数据的安全性、完整性问题。 用不用外键,这取决于数据库的用途、规模、架构,有外键,可...

  • 互联网应用数据库设计的性能考虑

    数据库外键的使用 外键解决的是数据的安全性、完整性问题。 用不用外键,这取决于数据库的用途、规模、架构,有外键,可...

  • mysql 多表关联创建外键

    逻辑外键是数据库体现不出来的。物理外键是数据库知道的 一、多表关联-外键: 代码1: Foreign前面不写东西,...

  • 浅谈数据库主键外键索引

    目录 1、主键、外键、索引定义 2、为什么定义主键、外键 3、主键和外键的关系 4、数据库中主键和外键的设计原则 ...

  • Sql知识

    主键外键 主键:PRIMARY KEY 外键:FOREIGN KEY 创建SQL FOREIGN KEY关于数据库...

  • Flask-SQLAlchemy外键约束

    外键:数据库一个表的键是另一个表的主键,这个键称为这个表的外键 1.连接数据库 2.创建用户表和文章表,文章表中以...

  • 多表操作

    外键 建立外键是为了保证数据的完整和统一性 外建所在表为从表 创建数据库 CREATE DATABASE chap...

  • 超键、候选键、主键、外键

    参考资料:[1].菜鸟学数据库(四)——超键、候选键、主键、外键 超键(super key):在关系中能唯一标识元...

  • 数据库-分布式系统不选用物理外键原因

    物理外键用处 为规范数据库表数据的完整性和强一致性 分布式系统数据库不选用物理外键原因 性能影响 项目版本更新 ...

  • 数据库外键

    前面我们所学习到的知识都是针对一张表的操作,也就是作为的单表操作 ,实际业务中需要对两张以上的表进行操作,即多表操...

网友评论

      本文标题:数据库外键

      本文链接:https://www.haomeiwen.com/subject/lhezhxtx.html