1、比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键。

此时分类表category称为主表,cid称为主键;商品表products称为从表,category_id称为外键。

外键特点:1)从表外键的值是对主表主键的引用

     2)从表外键类型必须与主表主键一致。

使用外键的目的:保证数据的完整性

2、首先在命令提示符内创建一个数据库web09,并创建两张表category和product,语句如下:

分别插入多条数据

eg.insert into category(cid,cname) values('c001','家电');

insert into product(pid,pname,price,category_id) values('p001','联想','5000','c001');

显示如下:

3、声明外键约束

语法:alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);

[外键名称]用于删除外键约束的,一般建议"_fk"结尾

约束声明后,如果我想删除category表中cid=c003的数据,删除不了

4、解除约束

语法:alter table 从表 drop foreign key 外键名称

继续删除category表中cid=c003的数据,可以删除

注意:从表外键不能添加主表中不存在的记录

   主表不能删除从表中已经引用的记录。

5、一对多建表原则:

6、多对多建表原则:

最新文章

  1. UITabBarController
  2. 动态规划VS分治策略
  3. 关于UltraEdit的两个小问题
  4. ThreadLocal之我见
  5. php基础05:常量
  6. Google Guava学习笔记——基础工具类Splitter的使用
  7. Linux下安装、启动MySQL
  8. Angular.js之自定义指令学习笔记
  9. Django2中文文档--目录及介绍部分
  10. easyui+ajax获取同表关联的数据
  11. Sqlserver分区表
  12. MT【239】离心率最大
  13. httpd-2.4.6
  14. fiddler常见的应用场景
  15. 解决Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 4
  16. September 16th 2017 Week 37th Saturday
  17. AndroidのListView之滑动列表项(点击事件和滑动事件共存)
  18. DOM 综合练习(一)
  19. Java并发(5):同步容器
  20. redis集群PHP解决方案

热门文章

  1. httpclient定时请求实例
  2. CommonsMultipartFile---用Spring实现文件上传
  3. Kattis - CD
  4. WiFi无线连接过程中有哪几个主要步骤?
  5. JQuery选择器排除某元素实现js代码
  6. k8s集群启动了上万个容器(一个pod里放上百个容器,起百个pod就模拟出上万个容器)服务器超时,无法操作的解决办法
  7. Prime Distance POJ - 2689 线性筛
  8. ajax中遇到无法发送的问题,以及收不到返回信息的问题
  9. shell脚本杀死某个服务的进程
  10. BZOJ 4026 dC Loves Number Theory (主席树+数论+欧拉函数)