主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名)

外键:保证数据的完整性,一致性。一般设置的外键关联的是另一张表的主键。外键的插入或者更新不能插入或更新主键表中没有的值,切记删除主键表中的数据时,

要先去外键表中接触关系,也可以在建立外键时设置好更新或者删除的外键表中的数据是否更改。设置外键的语法:CONSTRAINT 外键名 FOREIGN KEY (外键字段)REFERENCES 参照表 (参照字段) ON DELETE SET NULL ON UPDATE CASCADE 设置参照完整性。

外键约束的参照操作:

RESTRICT拒绝参照表删除或更新参照字段;

RESTRICT和NO ACTION相同,但这个指令只在mysql生效;

CASCADE删除或更新参照表的参照字段时,外键表的记录同步删除更新;

SET NULL 删除或更新参照表的参照字段时,外键表的外键设为NULL。

在这里说一句,外键一定要加索引,

(1) 外键没有索引,确实可能导致子表产生表锁,但是有前提:

a. 子表有删改操作。

b. 主表有删操作,或者更新主键的操作。

满足以上两个条件才会出现主表操作hang状态。

(2) 外键不建索引,则删除主表记录或主子表关联查询,都会进行子表的全表扫描。

这里顺带说一下索引查询的原理:

“索引”是为了能够更快地查询数据。比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节。

数据库也是一样,如果查询语句使用到了索引,会先去索引里面查询,取得数据所在行的物理地址,进而访问数据。

mysql中有主键和外键吗_谈谈mysql的主键和外键相关推荐

  1. mysql主键和外键_谈谈mysql的主键和外键

    主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名) 外键:保证数据的完整性,一致性.一般设置的外键关联的是 ...

  2. mysql外链删除_清理mysql外链的意思 和命令

    通常说到外键,只会提到"外键的目标 是确定资料的参考完整性(referential integrity).",但是外键详细 包含哪些动作和意思 呢? 1.配置 外链: (1).议决 ...

  3. mysql建立学号与课程编号的索引_数据库mysql 四约束 三范式 六索引

    mysql 四约束 三范式 六索引 1.MySQL 约束 1.约束的作用 分类 表列的primary key主键,unique唯一键,not null非空等修饰符常常被称作约束(constraint) ...

  4. mysql查询表中姓名第三个字_认识mysql(3)

    认识mysql第三篇,发出的内容适合初学者,如果能持续关注我的博客,可以全面的掌握mysql的常用知识,后续我也会陆续发出python相关的知识,关注我,和我一共进步吧! 1.SQL查询 1.执行顺序 ...

  5. mysql按 当前时间和规定时间大小排序_为什么 MySQL 使用 B+ 树· Why#x27;s THE Design?(009)...

    原文链接:https://draveness.me/whys-the-design-mysql-b-plus-tree 为什么 MySQL 使用 B+ 树 · Why's THE Design?​dr ...

  6. MySQL 怎么插入10天前的日期_使用 MySQL 的 SQL_MODE 有哪些坑,你知道么?

    (给数据分析与开发加星标,提升数据技能) 来源:陈臣 SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允 ...

  7. mysql 数据库编码怎么看,查看数据库编码_查看mysql编码方式 mysql数据库编码查看方法...

    摘要 腾兴网为您分享:查看mysql编码方式 mysql数据库编码查看方法,桌面日历,智能互联,政务易,优美图等软件知识,以及pptv版,广东省app,京东钱包app,星露谷物语补丁,51管家,翡翠出 ...

  8. mysql数据库技术与项目李锡辉_《MySQL数据库技术与项目应用教程 李锡辉 ,王樱 9787115474100 人》李锡辉,王樱著【摘要 书评 在线阅读】-苏宁易购图书...

    商品参数 作者: 李锡辉,王樱著 出版社:人民邮电出版社 出版时间:人民邮电出版社 版权提供:人民邮电出版社 基本信息 书名:MySQL数据库技术与项目应用教程 定价:45.00元 作者:李锡辉 ,王 ...

  9. mysql怎么删除临时表里的数据_谈谈MySQL数据库中临时表的应用

    MySQL在很多情况下都会用到临时表总结一下什么时候会用到临时表 什么是临时表MySQL用于存储一些中间结果集的表临时表只在当前连接可见当关闭连接时Mysql会自动删除表并释放所有空间. 以下讨论的是 ...

最新文章

  1. 腾讯终于良心了!桌面混乱终于有救了
  2. 44 ansible ad-hoc模式
  3. Spring Data ElasticSearch删除索引遇到的java.lang.IllegalStateException: Failed to load ApplicationContext异常
  4. java 数组 内存_图解Java数组的内存分配
  5. fatal: Path ‘XXX‘ is in submodule ‘XXX‘错误(path is in submodule)
  6. SharePoint 2010: 对于开发人员
  7. python查看与修改工作目录
  8. 我的内核学习笔记1:字符设备完善
  9. sql 在某表中加入一列count所有数据_执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?...
  10. 台式电脑开机显示节电模式怎么办_台式电脑的开机密码忘记了怎么办?
  11. Linux下配置Hadoop全分布式环境
  12. 台式计算机c盘怎么清理空间,练习教你电脑如何清理系统c盘空间
  13. 公司通过堡垒机连接公司服务器
  14. js拖拽(二)仿iGoogle自定义首页模块拖拽
  15. 旅行商问题(回溯算法)
  16. 结构为王——确定分析思路(数据分析方法论)
  17. Nand Flash入门基本概念
  18. e在计算机语言,请问e语言是什么?怎样使用?
  19. CUDA入门技术路线及基础知识
  20. html5+css3界面设计,仿微信支付设计数字键盘

热门文章

  1. 使用动态内表——ALV输出
  2. 用总计金额求本体额与消费税额FM,所引起的金额误差问题
  3. 美妆AI要抢李佳琦的饭碗?
  4. 京东向下沉市场打出“京喜”,拼多多和阿里惊不惊喜?
  5. 保险运用计算机的工作干什么,关于计算机在保险业务中的应用研究
  6. matlab保存图片如何保证dpi,[转载]matlab 保存高分辨率图像 dpi要在300以上
  7. 虚拟搭建局域网模拟器_接上U盘就能构建虚拟局域网!蒲公英X5路由器使用体验分享...
  8. Misc-wireshark-1(秒懂!!)
  9. python基础教程:类型转换和舍入
  10. Python 初学者必看:Python 异常处理集合