利用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语句

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/15934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品经理-需求分析(三)

1. 需求分析 从业务的需要出发,确定业务目的和目标,将业务需求转为产品需求 1.1 业务需求 业务需求 业务动机 业务目标 就是最根本的动机和目标成果,通过这个需求解决特定的问题 1.2 产品需求 产品需求 解决方案 产品结构 产品流程…

等了10年,终于迎来RTX5/RTX4全家桶开源,开源,开源! 且免费商用

我们的V4, V5, V6 ,V7开发板都配套了大量的RTX4, RTX5教程和案例,从2015年发布首版RTX4内核教程以来,已经整整10年了。 1、制作这个RTX教程和案例,其实也承受了很大的压力,因为只有RTX内核是免费商用的,中间件并不免费…

AUTOMATIC1111/stable-diffusion-webui/stable-diffusion-webui-v1.9.3

配置环境介绍 目前平台集成了 Stable Diffusion WebUI 的官方镜像,该镜像中整合如下资源: GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Stable Diffusion WebUI版本:v1.9.3 Python版本:3.10.…

数据结构(四)串

2024年5月26日一稿(王道P127) 定义和实现

P4391 [BOI2009] Radio Transmission 无线传输

题目描述 给你一个字符串 𝑠1,它是由某个字符串 𝑠2​ 不断自我连接形成的(保证至少重复 2 次)。但是字符串 𝑠2​ 是不确定的,现在只想知道它的最短长度是多少。 输入格式 第一行一个整数 &…

力扣一周题单 - 1

Day1(数组) A.移动零 B. 第三大的数 C. 找到所有数组中消失的数字 D. 生命游戏 E.合并区间 Day2(链表) A.合并两个有序链表 B.环形链表 C.环形链表 II D. 回文链表 E. 删除链表的倒数第 N 个结点 Day3(搜索&#x…

PostgreSQL的扩展(extensions)-常用的扩展之pg_statsinfo

PostgreSQL的扩展(extensions)-常用的扩展之pg_statsinfo pg_statsinfo 是一个用于 PostgreSQL 的监控和诊断工具。它能够收集广泛的数据库性能统计信息、系统运行状况以及活动日志,从而帮助数据库管理员进行系统优化、故障排除和性能监控。…

【计算机毕业设计】基于SSM+Vue的新能源汽车在线租赁管理系统【源码+lw+部署文档】

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新能源汽车在线租赁当然也不能排除在外。新能源汽车在线租赁是以实际运用为开发背景,运用软件工程开发方法&…

程序员做副业要知道重点在哪里

如果要在一年内赚取100万元,需要培养哪些能力、做哪些事情以及选择哪个行业赛道。 首先,要明确一个观念:学习、成长、破局、进化、认知提升和赚钱这些概念虽然重要,但它们本身并不能直接带来财富。当你专注于如何赚钱时&#xff…

ChatGPT-4o 实战 如何快速分析混淆加密和webpack打包的源码

ChatGPT-4o 几个特点 一个对话拥有长时间的记忆,可以连续上传文件,让其分析,最大一个代码文件只能3M,超出3M的文件,可以通过split-file可以进行拆分 其次ChatGPT-4o可以生成文件的下载链接,这有利于大文件的…

Linux 系统配置修改时间时区

Linux 系统配置修改时间时区 一、date 命令的功能介绍 DATE 指令是显示和设置系统日期和时间的命令。   该命令的一般格式为: date [选项] 显示时间格式(以开头,后面接格式)   date 设置时间格式命令中各选项的含义分别为&…

Vue3实战笔记(37)—粒子特效登录页面

文章目录 前言一、粒子特效登录页总结 前言 上头了&#xff0c;再来一个粒子特效登录页面。 一、粒子特效登录页 登录页&#xff1a; <template><div><vue-particles id"tsparticles" particles-loaded"particlesLoaded" :options"…

2024年5月大语言模型论文推荐:模型优化、缩放到推理、基准测试和增强性能

前一篇文章总结了关于计算机视觉方面的论文&#xff0c;这篇文章将要总结了2024年5月发表的一些最重要的大语言模型的论文。这些论文涵盖了塑造下一代语言模型的各种主题&#xff0c;从模型优化和缩放到推理、基准测试和增强性能。 大型语言模型(llm)发展迅速&#xff0c;跟上…

【论文解读】An Overview of Core Coding Tools in the AV1 Video Codec

原文下载地址:An Overview of Core Coding Tools in the AV1 Video Codec 时间:2018 年 级别:IEEE 作者:Yue Chen 摘要 AV1是一种新兴的开源和免版税的视频压缩格式,由开放媒体联盟(AOMedia)产业联盟在2018年初联合开发并最终确定。AV1开发的主要目标是在保持实际解码复杂…

Elasticsearch 详细介绍和经典应用

Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;它建立在Apache Lucene搜索引擎库之上&#xff0c;提供了一个分布式、多租户的全文搜索引擎&#xff0c;能够实时地存储、检索和分析大规模的数据。以下是关于Elasticsearch的详细介绍和经典应用&#xff1a; 详细介…

【idea插件】查询maven小工具——maven-search

1、简介 该插件提供一个查询工具方便在IDE中快速查找maven依赖&#xff0c;定制模糊查找算法。支持查找全网类。注&#xff1a;该功能需要连接网络。所有数据来源于源码阅读网 2、使用方法 开启菜单&#xff1a;Tools / Maven Search 快捷键 &#xff1a;Shift Control M 或…

Spring MVC+mybatis项目入门:旅游网(五)登录与注销

个人博客&#xff1a;Spring MVCmybatis项目入门:旅游网&#xff08;五&#xff09;登录与注销 | iwtss blog 先看这个&#xff01; 这是18年的文章&#xff0c;回收站里恢复的&#xff0c;现阶段看基本是没有参考意义的&#xff0c;技术老旧脱离时代&#xff08;2024年辣铁铁…

3款简洁个人网站引导页(附带源码)

3款个人网站引导页 效果图及部分源码1.个人页2.引导页3.导航页 领取源码下期更新预报 效果图及部分源码 1.个人页 部分源码 * {margin: 0;padding: 0; }body {background-image: linear-gradient(to left, rgba(255, 0, 149, 0.2), rgba(0, 247, 255, 0.2)), url(../img/bg.j…

新建一个STM32的工程

一、SMT32开发方式 1、基于寄存器的方式&#xff1a;和51单片机开发方式一样&#xff0c;是用程序直接配置寄存器&#xff0c;来达到我们想要的功能&#xff0c;这种方式最底层、最直接、效率会更高一些&#xff0c;但是STM32的结构复杂、寄存器太多&#xff0c;所以不推荐基于…

【408真题】2009-15

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…