主键:主键是一张表的唯一标识符,应该让其处于不可被外界更改状态。

且主键对于用户来说是无意义的,为了明确这一点,我们应该让主键处于一种幽魂状态,即主键存在,但其他人并不感觉到它存在。

外键:创建外键是为了在数据表之间建立联系。一个外键一般而言在他自身的主表中是唯一的,我这里经常就使用主表的主键作为从表的外键。

何谓主表,从表?

user表中有字段

id            int            11            not null        主键

name      varchar    20            not null        普通字段

message表中有字段

id               int            11            not null        主键

content      varchar    20            not null        普通字段

userId        int            11            null               外键

上方有两张表,其中user表就是主表,而message表即是从表。

添加外键的时候应该注意如下规则:

1、添加外键的数据库引擎必须为InnoDB

2、关联的字段数据类型必须一样,如上方两张表中的关联都是int类型

3、知道表与表之间的主从关系,需要在从表中添加外键

4、从表中的关联字段数据,在主表中需要是唯一的,我这里一般就使用主表的主键

5、创建外键的时候,需要先建立索引。索引的目的是为了更快地进行搜寻。当然,如果没有在主表里面建立索引,那么可能在从表中创建外键的时候出现错误。

6、如果有多张表需要创建外键,那么外键的名字也必须是唯一的,且不区分大小写。

使用navicat for mysql创建外键时,需要选择删除更新的关系:

.cascade方式

在父表上update/delete记录时,同步update/delete掉子表的匹配记录

. set null方式

在父表上update/delete记录时,将子表上匹配记录的列设为null

要注意子表的外键列不能为not null

. No action方式

如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作

. Restrict方式

同no action, 都是立即检查外键约束

mysql 图形界面外键_关于使用可视化图形工具navicat for mysql来创建外键的步骤相关推荐

  1. matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色

    一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~ 参考书籍 <matlab 程 ...

  2. mysql可视化创建外键说明_关于使用可视化图形工具navicat for mysql来创建外键的步骤...

    主键:主键是一张表的唯一标识符,应该让其处于不可被外界更改状态. 且主键对于用户来说是无意义的,为了明确这一点,我们应该让主键处于一种幽魂状态,即主键存在,但其他人并不感觉到它存在. 外键:创建外键是 ...

  3. 中去掉外键_【Java笔记】035天,MySQL中的增删改查

    学习Java的第35天. 今天天除了学习MySQL中的各种约束,MySQL中DML的操作,还有MySQL查询语句ds-- MySQLdz中d的约束有: • 非空约束(not null) • 唯一性约束 ...

  4. java图形界面重写坐标_重写自由软件和计算机图形的历史

    java图形界面重写坐标 您还记得上世纪90年代初大多数屏幕保护程序都显示飞扬的3D金属徽标的日子吗? 你有一个吗? 在本文中,我想回顾一下过去,并简要回顾计算机图形学(CG)从研究实验室过渡到每个人 ...

  5. linux centos7.9图形界面版本下载_适合在任何地方使用的 Linux:15 个小型 Linux 发行版...

    (给Linux爱好者加星标,提升Linux技能) 转自:Linux中国 https://linux.cn/article-12281-1.html 如果你有一台老旧的 PC,或者是基于单板计算机的小型 ...

  6. Java图形编程实验总结_实验二java图形界面编程2015级.doc

    实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...

  7. mysql存储家庭成员信息_家谱管理系统的设计与实现(MyEclipse,MySQL)

    家谱管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文16700字,程序代码,MySQL数据库,答辩PPT) 家谱是现代人们怀旧的重要部分,因此, ...

  8. mysql二亿大表_面对有2亿条数据的mysql表

    看到这个2亿5千条数据的表,我的内心是拒绝的,各种条件筛选要取出相应的数据,被折磨了两天,现在记录下心路历程 先分享下mysql相关的知识点1 名词解释 主键(PRIMARY KEY): 唯一索引,不 ...

  9. mysql插入栏位语句_情人节福利,手把手教你学会mysql语句操作

    情人节福利,手把手教你学会mysql语句操作 一起来 日常学python 进入正题 mysql语句分为两种,一种是DDL,就是数据定义语句,比如那些CREATE,ALTER.另一种是DML,就是数据管 ...

最新文章

  1. Servlet3——注解
  2. 看看物联网架构,快速了解物联网
  3. 怎么把文件放在python目录下-python – 如何将文件下载到特定目录?
  4. android studio设置Tab为四空格缩进
  5. aka鉴权 ims_ims 注册鉴权认证过程
  6. QPW 用户签到日志表(tf_user_signin_log)
  7. NumPy快速入门--复制/视图/深拷贝
  8. Java面试之ArrayList为什么线程不安全?
  9. 专有网络 VPC > 快速入门 > 网络规划
  10. C语言和设计模式(命令模式)
  11. Objective-C 协议(protocol)
  12. ./configure 出错Your intltool is too old. You need intltool 0.35
  13. react-native-router-flux 页面跳转与传值
  14. LeCun列传:曾因AI理论遭人唾弃,如今终成一代大神
  15. 裸辞指的是什么?裸辞到底好不好?
  16. 用文件保存游戏服务器数据恢复,玩植物大战僵尸等单机游戏时,存档丢失了怎么数据恢复?...
  17. SQL语句编写经典50题
  18. 全国计算机二级---公共基础部分知识点(自用总结)
  19. 前端程序员必看的网站专属前端程序员的“hao123“
  20. HDU-6608-Fansblog(威尔逊定理+快速乘)(多校)

热门文章

  1. 20万奖金池!大规模电商图上的风险商品检测赛事正式启动!阿里安全 × ICDM 2022...
  2. OS_I/O系统的层次结构
  3. 【已开源】Flutter 腾讯优量汇广告插件,帮助开发者获利 - FlutterAds
  4. ImportError: HDFStore requires PyTables, No module named 'tables' problem importing解决办法
  5. 计算机一级三维饼图,【2017年职称计算机考试Excel考点:创建饼图图表】- 环球网校...
  6. 【卫朋】产品管理:如何管理项目进度?
  7. inceptor-pl/sql和sql的交互(db2方言)
  8. 因以下文件的损坏或者丢失,Windows 无法启动实用解决方法
  9. Pycharm安装教程以及Pycharm汉化教程,超级详细
  10. 3个方法,教你激起用户的渴望