利用SQL语句实现多表联合查询——多表关系介绍
1.多对多查询
先创建一个student表和course表,应该利用外键来实现,通过一个中间表分别对应student和course中的id
CREATE TABLE student (id INT unsigned PRIMARY KEY,name VARCHAR(255),no VARCHAR(50)
);
CREATE TABLE course (id INT PRIMARY KEY,name VARCHAR(255)
);
#自行生成五条数据插进去凑数,主要是练习思路
INSERT INTO student (id, name, no) VALUES (1, '张三', '001');
INSERT INTO student (id, name, no) VALUES (2, '李四', '002');
INSERT INTO student (id, name, no) VALUES (3, '王五', '003');
INSERT INTO student (id, name, no) VALUES (4, '赵六', '004');
INSERT INTO student (id, name, no) VALUES (5, '孙七', '005');
创建student_course中间表
CREATE TABLE student_course (studentid INT unsigned,courseid INT,PRIMARY KEY (studentid, courseid),FOREIGN KEY (studentid) REFERENCES student1(id),FOREIGN KEY (courseid) REFERENCES course(id)
);-- 假设插入以下学生-课程关联数据
INSERT INTO student_course (studentid, courseid) VALUES (1, 1);
INSERT INTO student_course (studentid, courseid) VALUES (2, 2);
INSERT INTO student_course (studentid, courseid) VALUES (3, 3);
INSERT INTO student_course (studentid, courseid) VALUES (1, 2); -- 假设学生1也选了课程2
INSERT INTO student_course (studentid, courseid) VALUES (2, 1); -- 假设学生2也选了课程1
最后即可知道由这个中间表为多表查询做了帮助
2.一对一查询
利用单表拆分:把一张大表的基础部分放在一张表,其他详情介绍放在另一张表。
创建表格tb_user
CREATE TABLE tb_user (id INT PRIMARY KEY AUTO_INCREMENT, -- 假设id是主键且自增name VARCHAR(255) NOT NULL,age INT NOT NULL,gender ENUM('Male', 'Female', 'Other') NOT NULL,phone VARCHAR(20) NOT NULL UNIQUE -- 假设phone需要唯一性约束
);INSERT INTO tb_user (name, age, gender, phone) VALUES ('张三', 25, 'Male', '1234567890');INSERT INTO tb_user (name, age, gender, phone) VALUES ('李四', 30, 'Female', '0987654321');INSERT INTO tb_user (name, age, gender, phone) VALUES ('王五', 35, 'Male', '2345678901');INSERT INTO tb_user (name, age, gender, phone) VALUES ('赵六', 40, 'Other', '1098765432');INSERT INTO tb_user (name, age, gender, phone) VALUES ('孙七', 20, 'Female', '3210987654');
创建表格tb_user_edu
CREATE TABLE tb_user_edu (id INT PRIMARY KEY AUTO_INCREMENT, -- 假设id是主键且自增degree VARCHAR(255) NOT NULL,major VARCHAR(255) NOT NULL,primaryschool VARCHAR(255) NOT NULL,middleschool VARCHAR(255) NOT NULL,university VARCHAR(255) NOT NULL,userid INT NOT NULL,FOREIGN KEY (userid) REFERENCES tb_user(id) ON DELETE CASCADE ON UPDATE CASCADE UNIQUE -- 假设userid是外键且唯一
);
INSERT INTO tb_user_edu (degree, major, primaryschool, middleschool, university, userid) VALUES
('本科', '计算机科学', '第一小学', '第一中学', '北京大学', 1),
('硕士', '软件工程', '第二小学', '第二中学', '清华大学', 2),
('博士', '人工智能', '第三小学', '第三中学', '浙江大学', 3),
('大专', '网络工程', '第四小学', '第四中学', '上海交通大学', 4),
('中专', '电子信息技术', '第五小学', '第五中学', '复旦大学', 5);
模拟问人工智能的问题模板
帮我用SQL语句生成一个DDL建表语句,要求内容中的userid作为唯一的外键关联tb_user中的id.
表名叫作tb_user_edu,
要求内容包含(id,degree,major,primaryschool,middleschool,
university,userid)
基于以上DDL语句插入五条中文数据生成DML语句相关文章:
利用SQL语句实现多表联合查询——多表关系介绍
1.多对多查询 先创建一个student表和course表,应该利用外键来实现,通过一个中间表分别对应student和course中的id CREATE TABLE student (id INT unsigned PRIMARY KEY,name VARCHAR(255),no VARCHAR(50) ); CREATE TABLE course (id INT PRIMARY KEY,…...
Java中IO流类的体系
Java为我们提供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流,如图所示,为Java中IO流类的体系。 从上图发现,很多流都是成对出现的,比如: FileInputStream/FileOutputStream࿰…...
【调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件】
调试笔记-系列文章目录 调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 文章目录 调试笔记-系列文章目录调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 前言一、调试环境操作系统:Ubuntu 22.04.4 LTS编译环境调试目标 二、调…...
GitLab的原理及应用详解(六)
本系列文章简介: 随着软件开发的不断进步和发展,版本控制系统成为了现代软件开发过程中不可或缺的一部分。而GitLab作为其中一种流行的版本控制工具,在软件开发领域享有广泛的应用。GitLab不仅提供了强大的版本控制功能,还集成了项…...
【调和级数】100321. 优质数对的总数 II
本文涉及知识点 调和级数 质数、最大公约数、菲蜀定理 LeetCode100321. 优质数对的总数 II 给你两个整数数组 nums1 和 nums2,长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除,则称数对 (i, j) 为 优质数对&#…...
Java SE入门及基础(54) 函数式接口
目录 1. 什么是函数式接口 函数式接口 示例 示例 2. 函数式编程 示例 3. Lambda 表达式延迟执行 应用场景 示例 4. Consumer 接口 解释说明 示例 5. BiConsumer 接口 解释说明 示例 6. Predicate 接口 解释说明 示例 练习 7. Function 接口 解释说明 示例…...
轻松同步:将照片从三星手机传输到iPad的简便方法
概括 想要在新 iPad 上查看三星照片吗?但是,如果您不知道如何将照片从三星手机传输到 iPad,则无法在 iPad 上查看图片。为此,本文分享了 7 个有用的方法,以便您可以使用它们在不同操作系统之间轻松发送照片。现在&…...
MySQL查询某个字段含有字母数字的值
在MySQL中,要查询某个字段含有字母和数字的值,可以使用正则表达式配合REGEXP操作符。以下是一个详细的示例,说明如何编写这样的查询。 假设我们有一个名为my_table的表,其中有一个名为my_column的字段,我们想要查询这…...
通关!游戏设计之道Day14
力量与你同在 所有类型的游戏里,赛车类,解谜类,动作冒险类和射击类你都能找到强化道具。 强化道具 设计强化道具时,设计师应该开动脑筋琢磨下面几个问题 1.强化道具有什么用? 2.他长什么样子,在整个游戏…...
实现一个自定义 hook,用于强制刷新当前组件
写在前面 在 react 中,如果 state 数据发生变化,我们知道,会重新渲染该组件。 但是这个前提是我们需要依赖 state 数据的变化,那比如我们并不想定义 state,又或者说我们的操作不能引起 state 的变化,此时…...
牛客热题:滑动窗口的最大值
📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:滑动窗口的最大值题目链接方法一…...
Adobe产品安装目录修改
进入安装包目录,进入到products文件夹 编辑driver.xml文件 将“InstallDir”修改为你需要安装的软件的目录,我这里是修改到D:\Adobe目录 <DriverInfo> <ProductInfo> xxxxxxxxxxxxxxxxx </ProductInfo> 拷贝RequestInfo这部分…...
时间(空间)复杂度(结构篇)
目录 前言: 一、时间复杂度 1.1 时间复杂度的定义 1.2 时间复杂度的分析 表示方法: 1.3 常见的时间复杂度 1.4 时间复杂度的计算以及简单的分析 冒泡排序 折半查找(二分查找) 斐波那契数列(递归)…...
react记录部署
导语 React中的核心概念 1 虚拟DOM(Virtual DOM) 2 Diff算法(虚拟DOM的加速器,提升React性能的法宝) React主要的原理 Virtual DOM 虚拟DOM; 提供了一种不同的而又强大的方式来更新DOM, 代替直接的DOM操…...
【计算机毕业设计】基于SSM+Vue的校园美食交流系统【源码+lw+部署文档】
目录 前 言 第1章 概述 1.1 研究背景 1.2 研究目的 1.3 研究内容 第二章 开发技术介绍 2.1 Java技术 2.2 Mysql数据库 2.3 B/S结构 2.4 SSM框架 第三章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统性能分析 3.3 系…...
「YashanDB迁移体验官」Mysql生产环境迁移至YashanDB数据库深度体验
「YashanDB迁移体验官」Mysql生产环境迁移至YashanDB数据库深度体验 1. 前言1.1 产品介绍1.2 产品架构1.3 产品规格1.3.1 数据库版本支持1.3.2 数据类型支持 2. YMP安装2.1 环境说明2.2 执行安装2.3 访问YMP2.3.1 YMP登录界面2.3.2 YMP迁移流程 3. YMP数据迁移3.1 创建数据源3.…...
qmt量化交易策略小白学习笔记第4期【qmt如何获取获取行情数据--内置python使用方法】
内置python使用方法 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,需免费开通量化回测与咨询实盘权限,可以和博主联系! 获取历史行情与实时行情…...
XXE(XML外部实体注入)
1、XXE原理 XXE(XML外部实体注入,XML External Entity) ,在应用程序解析XML输入时,当允许引用外部实体时,可构造恶意内容,导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命…...
kafka 案例
kafka 案例 目录概述需求: 设计思路实现思路分析1.kafka案例_API 带回调函数的生产者2.kafka案例_API生产者分区策略测试3.kafka案例_自定义分区的生产者4.kafka案例_API同步发送生产者5.kafka案例_API简单消费者5.kafka案例_API消费者重置offset 参考资料和推荐阅读…...
别被“涨价“带跑,性价比才是消费真理
文章来源:全食在线 “再不好好赚钱,连方便面也吃不起了。”这是昨天在热搜下,一位网友的留言。而热搜的内容,正是康师傅方便面即将涨价的消息。 01 传闻初现 昨天上午,朋友圈就有人放出康师傅方便面要涨价的消息&am…...
【2026唯一通过ISO/IEC 23894 AI治理认证的低代码平台】:SITS2026演示全程技术白皮书级解读(含实时审计链路图)
第一章:SITS2026演示:AI原生低代码平台 2026奇点智能技术大会(https://ml-summit.org) SITS2026 是面向企业级AI应用构建的全新一代AI原生低代码平台,深度融合大语言模型推理能力与可视化编排引擎,支持从自然语言需求描述到可部…...
华为交换机MSTP+VRRP实战:从零配置到故障排查,手把手教你搞定企业双机热备
华为交换机MSTPVRRP企业级部署全指南:从规划到排障的深度实践 在中小型企业网络架构中,业务连续性和链路可靠性是核心诉求。当核心交换机单点故障可能导致整个园区网络瘫痪时,如何设计既具备冗余能力又能智能管理流量的解决方案?这…...
Vue3 解决表格切换闪烁的问题
表格切换闪烁的原因:el-table-column 没有固定宽度,导致切换标签页时表格重新计算列宽产生视觉变化(闪烁形象)表格实际需求的分析:需要实现自动适应视窗宽度,表格至终不会有横向滚动条最佳解决方案…...
ESP32以太网异步HTTPS客户端库详解
1. 项目概述AsyncHTTPSRequest_ESP32_Ethernet是一个专为 ESP32 系列微控制器(包括 ESP32、ESP32-S2、ESP32-S3、ESP32-C3)及 WT32_ETH01 以太网开发板设计的异步 HTTPS 客户端库。其核心目标是为资源受限的嵌入式设备提供一种高效、可靠且内存友好的方式…...
自如”增益租3.0”模式:以真实案例解析,做值得信赖的资产托管方案
一、从真实案例出发:理解增益租模式的运作逻辑近期,网络上流传着一些关于自如“增益租3.0”模式的案例讨论。其中,有业主反馈将毛坯房委托后,因选择分期支付装修费用,导致前期每月到手租金较低,且短期内未获…...
算法可视化神器!用动画让冒泡排序、二分查找一目了然
还在为理解冒泡排序的每一趟交换,或是二分查找的边界条件而绞尽脑汁吗?静态的代码和文字描述有时确实不够直观。 想要真正让算法“动”起来,一目了然?强烈推荐你试试**图码这个专注于算法可视化**的神器。 它提供了超过60种数据…...
通信失败?MicroROS网络配置全攻略,90%的人都踩过这个坑!
机器人开发必看!让MCU和电脑成功"对话"📌 为什么网络配置这么重要? 很多小伙伴在玩MicroROS时,遇到最多的问题就是:❌ 节点收不到消息 ❌ Agent一直连接不上 ❌ 单片机明明烧录了程序,却毫无反应…...
如何关闭Data Guard保护模式_降级为Max Performance以恢复主库读写
必须先确认保护模式和数据库角色,仅MAXIMUM AVAILABILITY或MAXIMUM PROTECTION需降级;执行前须停同步、确保主库OPEN且备库无MRP进程;降级后若仍不可写,需排查STANDBY_FILE_MANAGEMENT、归档目标状态及FORCE LOGGING等隐含依赖。确…...
梦幻动漫魔法工坊在内容创作中的应用:快速生成文章配图与插画
梦幻动漫魔法工坊在内容创作中的应用:快速生成文章配图与插画 1. 为什么内容创作者需要AI动漫生成工具 在当今内容爆炸的时代,视觉元素已成为吸引读者的关键因素。研究表明,带有高质量配图的文章能获得94%以上的浏览量提升。但对于大多数文…...
Bouncy Castle bcpkix-jdk15on 实战:X.509 证书的生成与验证全流程解析
1. 为什么需要Bouncy Castle处理X.509证书? 在Java生态中,虽然JDK自带了java.security包提供基础的证书操作支持,但实际开发中经常会遇到三个痛点:第一,原生API对某些加密算法的支持有限;第二,处…...
