多表联合查询

news2024/11/25 4:17:31

1.创建student表

mysql> CREATE  TABLE student (
    -> id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY ,
    -> name  VARCHAR(20)  NOT NULL ,
    -> sex  VARCHAR(4) ,
    -> birth  YEAR,
    -> department  VARCHAR(20) ,
    -> address  VARCHAR(50)
    -> );

 2.创建score表

mysql> CREATE  TABLE score (
    -> id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  AUTO_INCREMENT ,
    -> stu_id  INT(10)  NOT NULL ,
    -> c_name  VARCHAR(20) ,
    -> grade  INT(10)
    -> );

 3.为student表和score表增加记录

student

mysql> INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO student VALUES( 907,'彭智卓', '男',2003,'中文.系', '北京市海淀区');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO student VALUES( 908,'梁浩东', '男',2005,'中文系', '北京市海淀区');
Query OK, 1 row affected (0.00 sec)

 score

mysql> INSERT INTO score VALUES(NULL,901, '计算机',98);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,901, '英语', 80);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,902, '计算机',65);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,902, '中文',88);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,903, '中文',95);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,904, '计算机',70);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,904, '英语',92);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO score VALUES(NULL,905, '英语',94);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,906, '计算机',90);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,906, '英语',85);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO score VALUES(NULL,907, '中文',85);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO score VALUES(NULL,908, '中文',85);
Query OK, 1 row affected (0.01 sec)

 4.查表

1.查询student表的所有记录

mysql> select *from student;

 2.查询student表的第2条到4条记录

mysql> select *from student limit 1,3;     //返回第2、3和4条记录。在LIMIT子句中,第一个参数指定要跳过的记录数量(起始索引为0),第二个参数指定要返回的记录数量。

 3.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

mysql> select id,name,department from student;

 4.从student表中查询计算机系和英语系的学生的信息

mysql> select *from student where department in ('计算机系','英语系');

5.从student表中查询年龄18~22岁的学生信息

mysql> select *from student where year(current_date()) - birth >= 18 and year(current_date()) - birth <= 22;

6.从student表中查询每个院系有多少人    

 mysql>select department, count(*) as total_students
    -> from student
    -> group by department;       

 7.从score表中查询每个科目的最高分

   mysql> select c_name, max(grade) as 最高成绩 from score group by c_name;

8.查询李四的考试科目(c_name)和考试成绩(grade)

mysql> select c_name, grade from score where stu_id = (select id from student where name ='李四');

9.用连接的方式查询所有学生的信息和考试信息

mysql> select student.id, student.name, student.birth, score.c_name, score.grade from studennt join score on student.id = score.stu_id;

10.计算每个学生的总成绩

mysql> select student.id, student.name, sum(score.grade) as total_grade
    -> from student
    -> join score on student.id = score.stu_id
    -> group by  student.id, student.name;


11.计算每个考试科目的平均成绩

 mysql> select score.c_name, avg(score.grade) as average_grade
    -> from score
    -> group by score.c_name;


12.查询计算机成绩低于95的学生信息

 mysql> SELECT student.id, student.name, student.birth, score.grade
    -> from student
    -> join score on student.id = score.stu_id
    -> where score.c_name = '计算机' and score.grade < 95;


13.查询同时参加计算机和英语考试的学生的信息

mysql> select s.id, s.name, s.birth
    -> from student s
    -> join score sc1 on s.id = sc1.stu_id
    -> join score sc2 on s.id = sc2.stu_id
    -> where sc1.c_name = '计算机' and sc2.c_name = '英语';

14.将计算机考试成绩按从高到低进行排序

mysql> SELECT student.id, student.name, student.birth, score.grade
    -> FROM student
    -> JOIN score ON student.id = score.stu_id
    -> WHERE score.c_name = '计算机'
    -> ORDER BY score.grade DESC;


15.从student表和score表中查询出学生的学号,然后合并查询结果

mysql> SELECT id FROM student
    -> union
    -> SELECT stu_id FROM score;


16.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

mysql> SELECT s.name, s.department, sc.c_name, sc.grade
    -> FROM student s
    -> JOIN score sc ON s.id = sc.stu_id
    -> WHERE s.name LIKE '张%' OR s.name LIKE '王%';

17.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

mysql> SELECT s.name, TIMESTAMPDIFF(YEAR, s.birth, CURDATE()) AS age, s.department, sc.c_name, sc.grade
    -> FROM student s
    -> JOIN score sc ON s.id = sc.stu_id
    -> WHERE s.address LIKE '湖南%';

 

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

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

相关文章

【AWS 大赛】亚马逊云科技:2023 直冲云霄训练营入营考试报名与答题答案参考

目录 一、报名 &#xff08;1&#xff09;选择 “解决方案架构师-助理级” &#xff08;2&#xff09;未登录先注册账号 &#xff08;3&#xff09;登录 &#xff08;4&#xff09;报名 &#xff08;5&#xff09;报名成功 二、答题 &#xff08;1&#xff09;开始…

FreeRTOS(互斥信号量)

资料来源于硬件家园&#xff1a;资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、互斥信号量的定义与应用 1、互斥信号量的定义 2、互斥信号量的应用 3、简要了解递归互斥信号量 二、优先级翻转问题 1、运行条件 2、优先级翻转编程测试 三、互斥信号量的运…

[HDLBits] Exams/m2014 q3

Consider the function f shown in the Karnaugh map below. Implement this function. d is dont-care, which means you may choose to output whatever value is convenient. //empty

[HDLBits] Exams/2012 q1g

Consider the function f shown in the Karnaugh map below. Implement this function. (The original exam question asked for simplified SOP and POS forms of the function.) //

文本三剑客之grep命令和awk命令 1.0 版本

grep awk 1.grep命令1.1 基本格式1.2 常用选项 2.awk命令2.1 awk工作原理2.2 awk命令格式2.3 awk常用内置变量 1.grep命令 1.1 基本格式 grep [选项]… 查找条件 目标文件1.2 常用选项 选项功能 -m [ x ]匹配x次 后停止,x为具体数字-v取反 -i忽略字符大小写 -n显示匹配的 …

GrapeCity Documents for Excel, Java Edition Crack

GrapeCity Documents for Excel, Java Edition Crack 增加了对SpreadJS.sjs文件格式的支持&#xff1a; 更快地将大型Microsoft Excel文件转换为.sjs格式。 使用较小的占用空间保存导出的文件。 将Excel/SpreadJS功能导入SpreadJS/从SpreadJS导出。 从.sjs文件中压缩的JSON文件…

小程序发布注意事项

1、使用HBuildx的 发布 功能发布小程序&#xff0c;因为编译完的代码目录不是同一个 如果使用 运行 到小程序&#xff0c;最后发布的版本会显示”无法连接本地服务器“ 2、使用unicloud的云服务 uniCloud发行 | uni-app官网 阿里云的unicloud的话&#xff0c;使用request域名…

Docker启动、停止、删除容器的相关指令

关闭容器指令&#xff1a; docker stop name启动命令&#xff1a; docker start name删除容器&#xff1a; docker rm name 或 id查看所有容器id&#xff1a; docker ps -aq删除所有容器&#xff1a; docker rm docker ps -aq开启着的容器是不能被删除的。 查看容器信息&…

华为OD机试 - 最长连续子序列 - 双指针(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述备注 四、双指针1、双指针是什么&#xff1f;2、Java双指针算法适合解决哪些问题&#xff1f; 五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专…

GUI、多线程编程、网络编程简介

GUI、多线程编程、网络编程简介 文章目录 GUI简介什么是GUIGUI有什么用使用方法 多线程编程什么是多线程编程多线程编程有什么用提高程序的响应能力提高程序的性能实现异步编程并发数据访问和共享资源实现复杂的算法和任务分解 进行多线程编程的步骤 网络编程什么是网络编程网络…

day6 STM32时钟与定时器

STM32时钟系统的概述 概念 时钟系统是由振荡器&#xff08;信号源&#xff09;、定时唤醒器、分频器等组成的电路。 常用的信号有晶体振荡器和RC振荡器。 意义 时钟是嵌入式系统的脉搏&#xff0c;处理器内核在时钟驱动下完成指令执行&#xff0c;状态变换等动作&#xff…

迪瑞克斯拉算法

迪锐克斯拉算法 简单来说就是在有向图中&#xff0c;给定一个图中具体的出发点&#xff0c;从这个点出发能够到达的所有的点&#xff0c;每个点的最短距离是多少。到不了的点&#xff0c;距离则是正无穷。有向&#xff0c;无负权重&#xff0c;可以有环。 所以说&#xff0c;迪…

Linux 终端命令之文件浏览(4) head, tail

Linux 文件浏览命令 cat, more, less, head, tail&#xff0c;此五个文件浏览类的命令皆为外部命令。 hannHannYang:~$ which cat /usr/bin/cat hannHannYang:~$ which more /usr/bin/more hannHannYang:~$ which less /usr/bin/less hannHannYang:~$ which head /usr/bin/he…

流量日志分析--实操

[鹤城杯 2021]流量分析 <--第一道流量分析不难,主要就是布尔盲注的流量包分析,直接查看http请求包即可我们可以通过观察看到注入成功的响应长度不同,这里成功的为978字节,失败的994字节.不要问为什么.其实也可以直接判断.978的流量比994的少了非常多 显然就是成功的(因为这里…

云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初步使用(二)

前言&#xff1a; 在前面一篇文章云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初始安装&#xff08;一&#xff09;_华为cna_晚风_END的博客-CSDN博客 介绍了基于VMware虚拟机里嵌套部署华为云的云计算&#xff0c;不过仅仅是做到了在VRM的web界面添加计算节点…

高效数据传输:轻松上手将Kafka实时数据接入CnosDB

本篇我们将主要介绍如何在 Ubuntu 22.04.2 LTS 环境下&#xff0c;实现一个KafkaTelegrafCnosDB 同步实时获取流数据并存储的方案。在本次操作中&#xff0c;CnosDB 版本是2.3.0&#xff0c;Kafka 版本是2.5.1&#xff0c;Telegraf 版本是1.27.1 随着越来越多的应用程序架构转…

keil构建STM32工程并使用proteus仿真led点灯实验

STM32单片机与51单片机有很大区别&#xff0c;不仅结构上有很大差异&#xff0c;STM32更复杂一些&#xff0c;在操作上来说&#xff0c;STM32也要复杂很多&#xff0c;51单片机上手写代码&#xff0c;可以很直接操作引脚&#xff0c;但是STM32单片机在操作引脚之前需要作很多初…

学无止境·运维高阶⑤(LVS-DR 群集 配置Nginx负载均衡)

LVS-DR 群集 && 配置Nginx负载均衡 一、LVS-DR 群集1、相关配置环境2、在RS上配置并启动脚本2.1相关脚本2.2 启动脚本&#xff0c;另一台RS同样步骤 3、LVS-DR模式配置脚本4、测试 二、Nginx负载均衡1、安装Nginx并关闭相应设置2、向主机 node2&#xff0c;node3 写入内…

【第二阶段】kotlin函数引用

针对上篇传入函数参数我们也可以重新定义一个函数&#xff0c;然后在main中调用时传入函数对象 lambda属于函数类型的对象&#xff0c;需要把普通函数变成函数类型的对象&#xff08;函数引用&#xff09;&#xff0c;使用“&#xff1a;&#xff1a;” /*** You can edit, ru…

[足式机器人]Part3机构运动微分几何学分析与综合Ch03-1 空间约束曲线与约束曲面微分几何学——【读书笔记】

本文仅供学习使用 本文参考&#xff1a; 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch01-4 平面运动微分几何学 3.1 空间曲线微分几何学概述3.1.1 矢量表示3.1.2 Frenet标架 连杆机构中的连杆与连架杆构成运动副&#xff0c;该运动副元素的特征点或特…