mysql _外键、实体关系与ER图

2023-05-16

这里写图片描述

外键约束
    概念: A实体的某个字段指向 B实体的主键, 则称A实体的那个字段为该实体的外键, 一个表里可以有多个外键

    drop table if exists class;
    create table class(
        class_no int(2) unsigned zerofill primary key auto_increment comment '班级编号',
        class_name varchar(30) not null comment '班级名称'
    );
    insert into class values(1, '培优班');
    insert into class values(2, '普通班');

    drop table if exists student;
    create table student(
        stu_no int(2) unsigned zerofill primary key auto_increment comment '学员编号',
        stu_name varchar(30) not null comment '学员姓名',
        stu_sex varchar(3) not null comment '学员性别',
        stu_age tinyint(2) unsigned zerofill comment '学员年代',
        class_no int(2) unsigned zerofill comment '所在班级编号',
        foreign key(class_no) references class(class_no)  
    );
    insert into student values(01, '李白', '男', 18, 01);
    insert into student values(02, '杜甫', '男', 20, 01);
    insert into student values(03, '张飞', '男', 32, 02);
    insert into student values(04, '韩信', '男', 26, 02);
    insert into student values(05, '了龙', '男', 27, 02);
    insert into student values(06, '大乔', '女', 17, 01);
    insert into student values(07, '小乔', '女', 16, 01);
    insert into student values(08, '胖胖', '男', 18, 03);     --报错,class表里没有class_no为03的数据

    ps: 一个表(student)字段(class_no) 指向另一个表class的主键(class_no), 那么student表的class_no就是外键
        被指向的表称为主表(父表), 在这里也就是class表
        负责指向的表称为从表(子表), 在这里也是student表
    ps: 在创建的时候应该先创建主表,然后再创建从表, 插入数据时也应该先插入主表数据
    ps: 在删除表的时候应该先删除从表(子表), 然后再删除主表

    例:show create table student\G;    --可以通过查看表的创建信息来查看外键名
    例: alter table student drop foreign key student_ibfk_1;    --删除外键  student_ibfk_1(外键名)
    例: alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no);   --创建一个外键
    例: alter table student drop foreign key stu_fk_class;


    设置级联操作
    意思是在主表发生数据改变时,与之相关的从表应该要怎么处理
    可以使用关键词on update, on delete来标识
    允许的级联操作有:
        cascade: 如果主表更新或者删除数据时,那么从表也会执行相应的操作
        set null: 如果主表更新或者删除数据时, 那么从表相应的数据会设置成null
        restrict: 拒绝主表的操作(默认)

    (on update restrict   --拒绝主表的操作(默认))
    alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no) on update restrict;
**********************************************************************************************************************************

    (on update cascade   --如果主表更新或者删除数据时,那么从表也会执行相应的操作)
    alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no) on update cascade;
    update class set class_no = 3 where class_no = 1;
**********************************************************************************************************************************

    (on update set null   --如果主表更新或者删除数据时, 那么从表相应的数据会设置成null)
    alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no) on update set null;
    update class set class_no = 1 where class_no = 3;
**********************************************************************************************************************************

    alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no) on delete restrict;
    delete from class where class_no = 1;
**********************************************************************************************************************************

    alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no) on delete cascade;
    delete from class where class_no = 1;
**********************************************************************************************************************************

    alter table student add constraint stu_fk_class foreign key(class_no) references class(class_no) on delete set null;
    delete from class where class_no = 2;
**********************************************************************************************************************************

实体关系模型
    实体模型它有三种成分: 实休,关系,属性
    什么实体: 比如一个学生,老师,一个教室等等这些就是实体,比如在student表里每一行数据表示的就是每一个实体的信息
    什么属性: 属性就是实体的属性,比如学生的年龄,性别
    什么关系: 关系则是实体之间的主从关系,比如一个学生与班级的关系

实体之间有三种关系
    一对一关系(1:1)
        如果实体集(表)A 中的每一个实休(就是每行记录),在实体集B中只有一条数据与它对应(联系);
        反之实体集B 中的每一个实体,在实体A中只有一条数据与它对应
        这样的实体关系主是一对一关系

    一对多关系(1:n)
        如果实体集A中每一个实体,在实体集B中有n个与之对应
        反之在实体集B中每一个实体,在实体集A中最多只有一个实体与之对应
        这样的实体就是一对多关系

    多对多关系(m:n)
        如果实体集A中每一个实体,在实体集B中有n个与之对应
        反之如果实体集B中每一个实体,在实体集A中也有n个与之对应
        这样的实体关系就是多对多关系

这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql _外键、实体关系与ER图 的相关文章

  • 计算机c 逻辑符号,c语言基本符号

    C 43 43 既可用于面向过程的结构化程序设计 xff0c 又可用于面向对象的程序设计 xff0c 是一种功能强大的混合型的程序设计语言 下面是小编收集的关于c语言基本符号 xff0c 希望大家认真阅读 运算符的种类C语言的运算符可分为以
  • c语言中特殊符号怎么定义,C语言特殊符号意义

    C语言特殊符号意义 由会员分享 xff0c 可在线阅读 xff0c 更多相关 C语言特殊符号意义 17页珍藏版 请在人人文库网上搜索 1 下载可编辑C 语言中像 D amp f符号的作用说一下最佳答案C 语言中的符号运算符的种类 C 语言的
  • 11 项目的工程文件存在哪里

    项目的工程文件都存在SVN服务器上 xff0c 在日常开发中 xff0c 一定存在多人进行开发 xff0c 那么就会造成代码重合现象 xff0c SVN就是解决这种矛盾冲突的 xff0c SVN是从Linux下产生的一款C S模式的软件版本
  • vnc连接某个服务器显示10061,VNC connect:Connection refused(10061)(示例代码)

    下面介绍一个VNC连接工具 xff1a iis7服务器管理工具 IIs7服务器管理工具可以批量连接并管理VNC服务器 作为服务器集成管理器 xff0c 它最优秀的功能就是批量管理windows与linux系统服务器 vps 能极大的提高站长
  • linux安装软件sudo吗,安装软件包方式:sudo apt-get和sudo tasksel有何不同

    要安装ubuntu desktop有什么方法 xff0c 比较方便的运行命令 xff0c 下面三条命令都成功的安装ubuntu desktop xff0c 即 xff1a sudo apt get install ubuntu deskto
  • 牛客网中c++题目及其知识点详解

    1 下面描述正确的是 1 2 int p1 61 new int 10 int p2 61 new int 10 p1和p2申请的空间里面的值都是随机值 p
  • 【C++】Eigen优化及D8016错误

    Eigen优化过程 背景 最近在写一个保边滤波的算法 为了加快运算速率 xff0c 采用C 43 43 语言 xff0c 使用Eigen库进行大矩阵运算 效率问题 作为基于全局图像的算法 xff0c 需要创建一个全局的矩阵 xff08 n
  • 控制系统-观测器介绍与设计-龙伯格观测器及其与控制器对比

    目录 1 观测器提出的背景 1 1 龙伯格观测器的物理意义 2 状态空间下龙伯格观测器设计 2 1 状态观测器设计 3 状态观测器实例 3 1 直接法 4 控制器与观测器对比 4 1 基于状态反馈的控制器设计 4 2 基于输出反馈的控制器设
  • 一文彻底搞懂大小端字节序

    一文彻底搞懂大小端字节序 文章目录 一文彻底搞懂大小端字节序 1 基本概念1 1大端字节序 big endian 1 2小端字节序 little endian 2 常用处理器架构大小端模式3 如何查看系统的大小端模式3 1 96 dpkg
  • logback输出日志到elasticsearch方案

    功能一 xff1a 微服务日志采集汇聚方案 第一步 xff1a maven引入 xff0c 放在dependencys的第一位 xff0c 一定是第一位 lt dependency gt lt groupId gt com suncreat
  • Ubuntu16.04 远程界面配置

    Ubuntu16 04安装 x11vnc远程桌面并设置开机自动启动 1 安装x11vnc sudo apt get install x11vnc 2 设置开机自动启动连接密码 sudo x11vnc storepasswd 3 将密码储存在
  • 12 怎么从SVN下载项目工程文件

    输入如下命令 一定要在自己的根目录下 xff1a 即 home xxx 否则需要修改环境变量 xff0c 将来与其他人的操作也会不统一 xff0c SVN服务器IP以192 168 0 1为例 命令 xff1a svn co svn 192
  • numpy中np.max和np.maximum

    参考 numpy中np max和np maximum 云 43 社区 腾讯云 1 np max a axis 61 None out 61 None keepdims 61 False 求序列的最值 最少接受一个参数 axis默认为axis
  • Pytorch的to(device)用法

    参考 Pytorch的to device 用法 云 43 社区 腾讯云 如下所示 xff1a device 61 torch device 34 cuda 0 34 if torch cuda is available else 34 cp
  • Camouflaged Object Detection

    摘要 我们对一项名为伪装物体检测 COD 的新任务进行了全面研究 xff0c 该任务旨在识别 无缝 嵌入到周围环境中的物体 目标对象与背景之间的高内在相似性使目标检测比传统的目标检测任务更具挑战性 为了解决这个问题 xff0c 我们精心收集
  • 如何改变vncserver在windows桌面下的分辨率

    用shell登录自己的服务器 xff0c 并输入一下命令 xff0c 1920x1080为屏幕分辨率 xff0c 11为自己的端口号 vncserver kill 14 vncserver 14 geometry 2000x1100 dpi
  • CVPR2019目标检测方法进展

    目标检测是很多计算机视觉应用的基础 xff0c 比如实例分割 人体关键点提取 人脸识别等 xff0c 它结合了目标分类和定位两个任务 现代大多数目标检测器的框架是 two stage xff0c 其中目标检测被定义为一个多任务学习问题 xf
  • ubuntu16.04+cuda8.0+cudnn+opencv3.0+caffe

    一 ubuntu16 04安装 开机F12进入BIOS的设备启动菜单 xff0c 选择U盘启动 安装类型 xff0c 选择其他选项 xff0c 进行分区 Swap xff1a 逻辑分区 xff0c 20GB 空间起始位置 交换空间 boot
  • Linux 用户态通过中断切换到内核态详解

    文章目录 一 用户态与内核态二 中断三 任务状态段四 Linux 进程从用户态切换到内核态的过程五 参考资料 一 用户态与内核态 Linux 把内存主要分为 4 个段 xff0c 分别是内核代码段 内核数据段 用户代码段 用户数据段 内核两
  • PX4中串口名称、设备名称、端口名称对应关系

    这里规定了各种uart usart的波特率 bufsize等配置 xff0c boards px4 fmu v5 nuttx config nsh defconfig CONFIG STM32F7 UART4 span class toke

随机推荐

  • PX4调试过程中的小问题

    使用USB直连飞控可以开始校准 xff0c 但是用无线的方式开始任一传感器的校准都报错 xff1a Transition denied SHUTDOWN to INIT 明明飞控正常上电 xff0c 也许报了个错说 critical bat
  • PX4中IMU传感器的数据经过了哪些处理后被使用的?

    注 xff1a 所用PX4的代码版本为当前master最新版9e309f62a9b1731caae96000b824aa96661e67ad 2019年11月所写 xff0c 新版本有所不同 xff0c 尚未更新 IMU的数据 xff1a
  • WARNING: [Vivado 12-13340] WARNING: [Vivado 12-13277]

    仿真的时候遇问题 xff1a WARNING Vivado 12 13340 Unable to auto find GCC executables from simulator install path path not set WARN
  • 二.因子图优化学习---董靖博士在深蓝学院的公开课学习(2)

    专栏系列文章如下 xff1a https blog csdn net weixin 36773706 article details 122440411 https blog csdn net weixin 36773706 article
  • 四.因子图优化学习---对因子图优化的粗浅理解

    专栏系列文章如下 xff1a 一 因子图优化学习 董靖博士在深蓝学院的公开课学习 xff08 1 xff09 goldqiu的博客 CSDN博客 二 因子图优化学习 董靖博士在深蓝学院的公开课学习 xff08 2 xff09 goldqiu
  • 多传感器融合SLAM、导航研究和学习专栏汇总

    从2021年9月份开始学习多传感器融合SLAM xff0c 期间也发了不少博客记录学习过程 xff0c 自己对SLAM的认识也逐渐加深 xff0c 以前一些博客中会有一些错误的地方还未及时去修正 xff0c 敬请谅解 由于课题组需要和自身发
  • 启航篇——四旋翼飞行器之入坑两年心路历程和毕设总结

    笔者今年大四毕业 xff0c 由于之前参加比赛及准备考研 xff0c 没有时间总结这两年来做四旋翼飞行器的心得体会 现在借毕业设计这个契机 xff0c 想把这件事做了 xff0c 算是两年的收尾工作 xff0c 也是个新的开始 先从介绍这两
  • Gazebo学习笔记(一)

    搭建一个移动车 ctrl 43 m 进入到gazebo编辑界面 ctrl 43 m 进入到gazebo编辑界面 1 搭建一个车底盘 xff0c 选择simple shapes 的box xff0c 点击后在编辑框中释放 2 利用resize
  • 1分钟教会你二进制撩妹(汉)读心术

    近些年来 xff0c 小魔发现 xff0c 对于年轻的男女而言 xff0c 一些传统的节日似乎都变成了情人节或者脱单节 xff0c 就连 光棍节 xff0c 实际上很多人都是抱着节前或者是当天脱单而过的 双11 光棍节 即将来临 xff0c
  • 树莓派光敏传感器控制LED小灯的开关

    今天来做一个关于光敏传感器的使用demo xff0c 如图 xff0c 我采用的是普通用于开发的光敏传感器 传感器的基板上有两个LED xff0c 上一个是表示DO的高低电平 xff0c 下一个表示是否通电 当挡住传感头之后 xff0c D
  • Opencv+YOLO3目标检测/C++

    1 引言 YOLO3能够快速识别图片和视频中的80种物体 xff0c 而且实时性强 xff0c 准确度接近SSD Opencv是目前最流行的开源图像处理库 xff0c 使用Opencv能够非常方便的对图像进行处理 Opencv4 0已经包含
  • Linux安装Docker

    安装前菜 如何卸载Docker 1 查询docker安装包 yum list installed grep docker 2 删除安装包 yum remove docker 3 删除镜像 容器等 rm rf var lib docker 下
  • 北邮初试+复试经验分享

    初试情况 xff1a 政治 53 英语 70 数学 122 计算机综合 xff08 803 xff09 110 一些相关的基本情况 xff1a 本科专业数学 本科期间学过数据结构 通过了英语四六级 本科成绩还算可以 初试材料选择 xff08
  • apt命令概述

    目录 Linux软件仓库 软件源配置 apt命令 常见的命令如下 xff1a 常见的用法 示例 xff1a 使用apt安装redis软件 Linux软件仓库 Ubuntu采用集中式的软件仓库机制 xff0c 将各式各样 的软件包分门别类地存
  • 索引覆盖与回表

    懂的越多 xff0c 不懂的越多 上回书说到 xff1a 什么情况下 xff0c 索引下推没办法提高sql查询效率 xff1f 表info主键id名称name值value别名realname 对于info表 xff0c 我们现在有 xff0
  • Ubuntu18.04安装实时内核Preempt-RT

    文章目录 1 安装环境2 安装依赖包3 查看内核版本4 下载新的内核和对应的Preempt RT补丁5 解压缩6 打补丁7 配置内核8 编译内核9 校验结果10 重启11 测试12 调整分辨率 1 安装环境 Ubuntu18 04内核版本
  • CAS 5.2.X 使用cas-overlay-template 搭建cas-server

    1 下载 cas overlay template 地址 xff1a https github com apereo cas overlay template 选择需要的版本 xff1a cas 6 x开始使用gradle构建 xff0c
  • Jupyter 更改主题解决 jt 不存在问题

    pip安装之后 xff0c 并不是像传统的那样安装到了envs中的script文件中 而是在C盘的appdata C Users Administrator AppData Roaming Python Python36 Scripts 中
  • 树莓派4 桌面图标显示 No wireless interface found

    树莓派4 桌面图标显示 No wireless interface found 解决方式 先使用有线链接网络 安装wpasupplicant wpagui libengine pkcs11 openssl sudo apt install
  • mysql _外键、实体关系与ER图

    外键约束 概念 A实体的某个字段指向 B实体的主键 则称A实体的那个字段为该实体的外键 一个表里可以有多个外键 span class hljs operator span class hljs keyword drop span span