数据库外键

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

外键:用于表与表之间的关联,用于保持数据的一致性。从表外键的值是对主表主键值的引用,比如,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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...
    厲铆兄阅读 10,713评论 2 46
  • 回顾 字段类型(列类型):数值型,时间日期型和字符串类型 数值型:整型和小数型(浮点型和定点型) 时间日期型:da...
    翊溪阅读 4,569评论 0 0
  • 数据库开发规范1. 数据库命名规范前缀对象前缀命名: 前缀命名一般用小写表的前缀: 业务模块组名前缀存储过程前缀:...
    PowerYangSoft阅读 7,457评论 0 8
  • 小学升初中的期末考试马上来了,这可愁坏了上课从来不听讲,不记笔记,天天泡在篮球场上的陆曦,但他很聪明,懂得怎么放下...
    那个一直等你的男生阅读 1,733评论 0 1
  • 仿锤子便签图片拖拽排序动画效果 这次要模仿的是类似于锤子便签中的图片点击拖拽特效 1.使用ItemTouchHel...
    Ugly_K阅读 5,258评论 0 14

友情链接更多精彩内容