SQL主键与外键的创建与解析

2023-11-19

一个表中,会存很多条记录,需要一个列来位置标识一条数据

1.主键:唯一标识一条数据; 值不能为空 不能重复
标识列:一旦将一个列设置成标识列,它就不能再手动输入值,是插入数据时自动生成的。这个列的类型必须的不带小数的数值型,整型
标识列的标识种子:
第一条数据记录标识列的值 100 增量 3
注意:标识列,若删除了数据再插入新数据,就会出现不连续的状态

2.创建主键: 联合主键 唯一标识
创建一个主键,同时自动创建了一个聚集索引
3.创建外键
外键:
一般在两个表产生关联的时候创建
一个列创建为外键,它在另一个表中必须是主键
两个表一旦建立外键关系,外键表里的对应的外键列的值必须是它对应的主键表里的主键值,否则你若想插入一个不存在的值是插入不进去的

一个表中可以有多个外键也可以没有。
但是一个表只能有一个主键,也可以没有,但是一般都会设置一个主键

比如:
我现在创建以下几个表
班级表:ClassInfo
年级表:GradeInfo
学生表:StudentInfo
用户表:UserInfo

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在用户表中 右键列,为UserId设置主键并设置标识列
在这里插入图片描述
在这里插入图片描述
在年级表中,同理,为年级表设置主键和标识列 GradeId
在这里插入图片描述
在班级表中,将ClassId设置为主键,右键GradeId 选择“关系”设置外键
在这里插入图片描述
在表和列规范处点击,弹出以下界面:
在这里插入图片描述

说明:GradeId对于年级表是主键,对于班级表是联系年级表的外键 因此,对于GradeId来说,年级表GradeInfo是主键表,ClassInfo班级表是外键表,

验证了本表外键必须是另一个表的主键。

在学生表中,设置StuId是主键和标识列,标识种子为1001,增量为1
在这里插入图片描述
ClassId右键关系,设置外键;
在这里插入图片描述
在这里插入图片描述

ClassId 是班级表中的主键,他联系班级和学生表,因此对于学生表来说,他就是外键

我们可以看到,学生表的外键约束
在这里插入图片描述

最后,附上表的设计:

班级表:

在这里插入图片描述

年级表:

在这里插入图片描述

学生表:

在这里插入图片描述

用户表:

在这里插入图片描述
欢迎大家批评指正!!
记于2020-4-25
新冠疫情期间!

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

SQL主键与外键的创建与解析 的相关文章

  • Python爬虫分析CSDN个人博客数据

    前言 到周末了 产生一个idea 就是获取个人的全部博客标题及链接 发布时间 浏览量 以及收藏量等数据信息 按访问量排序 整理成一份Excel表存储 使用时 输入个人博客ID即可 从数据获取到解析存储 用到requests Beautifu
  • Hystrix-Dashboard介绍+案例+图分析

    测试中使用到的代码到在这里https download csdn net download zhou920786312 10853300 Hystrix Dashboard介绍 实时监控Hystrix的各项指标信息 是Hystrix的仪表盘
  • 使用Pytorch框架

    文章目录 Python深度学习神经网络的API pytorch简介 pytorch安装 GPU和CPU 张量 1 基本概念 2 图像作为输入 3 张量的创建方式 弄好一个numpy数组后 利用它有四种方式创建张量 没有预先确定数据 生成默认
  • a标签设置下载设置文件名,并且设置无效的解决方法

    设置 a 标签的 download属性 可以重置 文件名 如下代码 文件名重置为 file xlsx a href http 192 168 1 1 abcd xlsx 下载 a 这种写法有个前提 href 的下载地址 和 当前网站地址 必
  • SQL中ALL、Any、Some的区别

    SQL语句中存在3个著名的量词 some all 和 any All 只有当其所有数据都满足条件时 条件才成立 Any 只要有一条数据满足条件 条件就成立 Some 其中存在一些数据满足条件 作用和Any大致相同 常规的使用中看作一致即可
  • 来这里读懂英文!!!认清楚API !!!

    API Aplication Programming Interface 应用程序接口 直接的说 API就好比是一个信使 发送请求 告诉系统你想要做什么 然后把结果告诉你 再或者说 不论何时想到API 都应当把它想象成为餐馆的服务生 奔波于
  • Qt自带的日志框架

    描述 Qt中使用Qt qInstallMessageHandler 注册日志消息 日志级别 qDebug 调试信息 qWarning 警告信息 qCritical 严重错误 qFatal 致命错误 代码实现 void outputMessa
  • 服务数据的定义和使用

    1 自定义数据服务 在包下创建srv文件夹 在文件夹下创建Person srv 在Person srv下输入以下内容 代表数据类型 string name uint8 age uint8 sex uint8 unknown 0 uint8
  • Linux系统安装android studio

    版权声明 本文为博主原创文章 未经博主允许不得转载 标签 空格分隔 Linux android studio 下载openjdk 7 jdk 通过终端直接安装的方式 不需要进行jdk配置 如下 sudo apt get install op
  • 如何把本地项目的代码上传到 GitHub 上(详解)

    此教程适用于已经安装 git 并且已经注册 GitHub 账号的电脑 如果没有下载 git 或者还没有注册过 GitHub 账号的 可以找相关教程弄一下 下面直接开整 说明 这里的案例就用我之前写的一个前端页面 内蒙古招生考试信息网首页 来
  • 【头歌-Python】Python第六章作业(初级)

    第1关 列表的属性与方法 任务描述 初始化一个空列表 输入一个正整数 n 接下来 你将被要求输入 n 个指令 每得到一个指令后 根据指令的字符串进行对应的功能操作 指令形式及对应功能如下 insert i e 在第 i 个位置插入整数 e
  • 5秒之后自动跳转页面

  • 基础备忘:数组指针与对一维数组名取地址

    一 指向一维数组的数组指针 数组指针是指向一个数组的指针 如 int p 10 p是一个指针 指向一个包含10个元素的一维数组 数组元素是整形 如果写成了int p 10 则是一个指针数组 由于 的优先级比 的高 p先与 结合 p就是数组类
  • Mac maven删除与安装

    Mac maven删除与安装 一 删除maven 找到maven安装目录 打开终端输入 mvn version找到安装目录 终端输入sudo rm rf maven的路径 二 安装maven 到maven官网下载 选择apache mave
  • [2021首届“陇剑杯”网络安全大赛] SQL注入

    2021首届 陇剑杯 网络安全大赛 SQL注入 题目描述 某应用程序被攻击 请分析日志后作答 黑客在注入过程中采用的注入手法叫 布尔盲注 格式为4个汉字 例如 拼搏努力 黑客在注入过程中 最终获取flag的数据库名 表名和字段名是 Sqli
  • vue3中实现el-dialog弹窗

    vue3中的父子组件传递依然和vue2中的一样使用props和emit 但是写法略有不同 emit 自定义事件 子传父 props 父传子 父组件中
  • 【数学建模】预测模型——多元回归分析 SPSS实现

    线性回归介绍 回归分析是研究变量之间因果关系的一种统计模型 因变量就是结果 自变量就是原因 基于结果变量 因变量 的种类 回归分析可分为 线性回归 因变量为连续变量 logistic回归 因变量为分类变量 柏松回归 因变量为计数变量 这三种
  • config:fail,Error: 系统错误,错误码:40048,invalid url domain

    调用微信接口报出的错误 这个错误原因是因为安全域名配置错误 分两种情况 若是公众号的测试号 你完全可以写一个内网ip 比如192 168 1 100 8080 不必内网穿透 当然如果是需要微信回调的话还要外网可访问 若是公众号的正式号 可以
  • 使用Flink1.16.0的SQLGateway迁移Hive SQL任务

    使用Flink的SQL Gateway迁移Hive SQL任务 前言 我们有数万个离线任务 主要还是默认的DataPhin调度CDP集群的Hive On Tez这种低成本任务 当然也有PySpark 打Jar包的Spark和打Jar包的Fl

随机推荐

  • shell 脚本编写总结(1)

    知识点1 变量 1 环境变量 1 变量 BASH Bash Shell的全路径 比如 echo BASH 2 变量 BASH VERSION Bash Shell的版本号 3 变量 EUID 记录当前用户的UID root用户值为0 4 F
  • vue + 高德地图 + 标记点

    其他 高德地图引入及使用 vue 高德地图 标记点 变大变小闪烁动画 多标记点 同一位置标记点显示个数 增加标记点 绘制地图 this map new AMap Map map resizeEnable true center 120 35
  • 区块链学习笔记(一)——比特币概念以及密码学相关的知识

    自己做一些让自己读得懂的笔记 区块链学习笔记 一 1 Bitcoin History 1 1 一个关于bitcoin的时间线 2 Crytography of the Blockchain 2 1 the Hash function 2 1
  • 时间序列预测之ARMA、ARIMA序列及季节性序列matlab实现

    ARMA是一种平稳时间序列模型 即均值和协方差不随时间的平移而改变 ARMA有三种类型 AR序列 MA序列 ARMA序列 但是由于ARMA只能处理平稳序列 而现实中的问题往往有趋势性或周期性等 为了得到平稳序列 我们对数据进行差分运算 使得
  • 【编辑器】UnityConsole界面双击日志跳转

    环境 发布正式包时 Unity的原生Log肯定是要屏蔽的 最常用的做法就是自己封装一下 实现一个debug 不过这样的话 双击跳转就会去到Debug类里面去 为了方便查bug 实现一下日志跳转 实现 看了一下网上的资料 思路应该就是通过类型
  • 【系统移植】开发板的启动过程(认识uboot)

    在系统移植之前 需要先了解开发板启动的大致流程 了解了大致流程后 才知道开发板启动需要哪些东西 了解开发板启动的时候 一定会遇到闻所未闻的东西 所以我们了解的顺序是 了解开发板启动时涉及到的部件 了解启动过程中涉及到的文件 uboot 内核
  • msfvenom生成各种Payload命令

    msfvenom生成各种Payload命令 msfvenom l 列出所有模块 攻击载荷 Binaries linux msfvenom p linux x86 meterpreter reverse tcp LHOST
  • Ubuntu 安装配置NFS网络文件系统服务器(详细)

    现在我的电脑连接情况 Ubuntu 安装配置NFS服务器 一 安装NFS服务器1 1 安装Ubuntu nfs服务器端 sudo apt get install nfs kernel server 很显然 我已经安装过了 继续往下走 1 2
  • 从零开始刷题1

    又一道简单等级的题 小白打小怪 最大时间 给定一个由 4 位数字组成的数组 返回可以设置的符合 24 小时制的最大时间 最小的 24 小时制时间是 00 00 而最大的是 23 59 从 00 00 午夜 开始算起 过得越久 时间越大 以长
  • 网络编程是什么

    转载 http peixun eol cn company company article detail php articleid 15033 对于初学者 或者没有接触过网络编程的程序员 会觉得网络编程涉及的知识很高深 很难 其实这是一种
  • 【数据结构】堆、栈的区别

    heap 是堆 stack 是栈 在编程语言中 内存分配方式主要包括 栈 堆 静态存储分配 栈的内存是由操作系统自动分配 释放的 存放函数的参数值 局部变量等 堆的内存是由程序员手动申请和释放的 对应C语言中的malloc函数和C 中的ne
  • 服务器意外重启后redis启动失败或无法连接的问题解决办法

    今天开发服务器因机房断电重启了 然后发现所有的PHP接口都报错 session write close Failed to write session data using user defined save handler session
  • 【C++自我精讲】基础系列四 static

    C 自我精讲 基础系列四 static 0 前言 变量的存储类型 存储类型按变量的生存期划分 分动态存储方式和静态存储方式 1 动态存储方式的变量 生存期为变量所在的作用域 即程序运行到此变量时才为其分配存储空间 作用域结束时 会自动收回为
  • 企业支付宝白名单和数字娱乐线上接口解析。

    企业支付宝白名单 企业支付宝白名单是指企业在支付宝平台上享受更多支付和服务权限的一种认证机制 通过加入支付宝白名单 企业可以获得更高的交易额度 更灵活的支付功能和更便捷的服务 具体来说 企业支付宝白名单的好处包括 提升支付额度 白名单企业可
  • unzip命令常用参数

    1 l 显示压缩文件内所包含的文件 2 t 检查压缩文件是否正确 3 o 不必先询问用户 unzip执行后覆盖原有的文件 4 n 解压缩时不要覆盖原有的文件 5 q 执行时不显示任何信息 6 d lt 目录 gt 指定文件解压缩后所要存储的
  • redis进行set操作时异常总结

    事情经过 项目中使用redis 环境进行过一次网络迁移 之后就无法拿到redis连接 1 先通过ping命令排除网络原因 其实这里建议使用 telnet 命令 格式 telnet ip port 不仅能排查网络是否连通并且知道改端口号是否能
  • PTA-ASCII码实战

    给出一系列字符 有大小写英文字母和其他一些字符 仅涉及ASCII打印字符 即ASCII码值 gt 32 现在想让你鉴别以下这些字符 如果是英文字母则输出其ASCII码值 否则输出 illegal 不包含引号 输入格式 第一行一个整数N 0
  • 详解Singleton、Factory、Strategy在项目中的应用

    一 前言 前几天阅读一框架文档 里面有一段这样的描述 从对象工厂中 促使写下本文 尽管一些模式简单和简单 但是常用 有用 结合最近一个项目场景回顾一下里面应用到的一些模式 Singleton Factory Strategy Singlet
  • pm2的的使用(基础)

    技术背景 相信大家都有这样一个烦恼 自己写了一个服务 并且通过cmd面板开启了这个服务 可是 当你关掉cmd命令行面板的时候 你会发现你的服务也跟着停止了 这种现象是我们不想要的 所以 诞生了一种技术 pm2服务持久化管理 技术的简单使用
  • SQL主键与外键的创建与解析

    一个表中 会存很多条记录 需要一个列来位置标识一条数据 1 主键 唯一标识一条数据 值不能为空 不能重复 标识列 一旦将一个列设置成标识列 它就不能再手动输入值 是插入数据时自动生成的 这个列的类型必须的不带小数的数值型 整型 标识列的标识