MySQL多表查询(改进版)

news2024/11/15 4:58:37

1.创建student和score表

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)
    -> );
Query OK, 0 rows affected, 1 warning (0.03 sec)

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)
    -> );
Query OK, 0 rows affected, 3 warnings (0.05 sec)

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

mysql> INSERT INTO student VALUES
( 901,'张老大', '男',1985,'计算机系', '北京市海淀区'),
( 902,'张老二', '男',1986,'中文系', '北京市昌平区'),
( 903,'张三', '女',1990,'中文系', '湖南省永州市'),
( 904,'李四', '男',1990,'英语系', '辽宁省阜新市'),
( 905,'王五', '女',1991,'英语系', '福建省厦门市'),
( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
Query OK, 6 row affected (0.00 sec)

INSERT INTO score VALUES
(NULL,901, '计算机',98),
(NULL,901, '英语', 80),
(NULL,902, '计算机',65),
(NULL,902, '中文',88),
(NULL,903, '中文',95),
(NULL,904, '计算机',70),
(NULL,904, '英语',92),
(NULL,905, '英语',94),
(NULL,906, '计算机',90),
(NULL,906, '英语',85);
Query OK, 10 rows affected (0.03 sec)
Records: 10  Duplicates: 0  Warnings: 0

3.查询student表的所有记录

mysql> select * from student;
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    ||  1985 | 计算机系     | 北京市海淀区       |
| 902 | 张老二    ||  1986 | 中文系       | 北京市昌平区       |
| 903 | 张三      ||  1990 | 中文系       | 湖南省永州市       |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       |
| 905 | 王五      ||  1991 | 英语系       | 福建省厦门市       |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
6 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select * from student limit 1,3;
+-----+-----------+------+-------+------------+--------------------+
| id  | name      | sex  | birth | department | address            |
+-----+-----------+------+-------+------------+--------------------+
| 902 | 张老二    ||  1986 | 中文系     | 北京市昌平区       |
| 903 | 张三      ||  1990 | 中文系     | 湖南省永州市       |
| 904 | 李四      ||  1990 | 英语系     | 辽宁省阜新市       |
+-----+-----------+------+-------+------------+--------------------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select id,name,department from student;
+-----+-----------+--------------+
| id  | name      | department   |
+-----+-----------+--------------+
| 901 | 张老大    | 计算机系       |
| 902 | 张老二    | 中文系         |
| 903 | 张三      | 中文系        |
| 904 | 李四      | 英语系        |
| 905 | 王五      | 英语系        |
| 906 | 王六      | 计算机系      |
+-----+-----------+--------------+
6 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select * from student where department = '计算机系' or department = '英语系';
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    ||  1985 | 计算机系        | 北京市海淀区       |
| 904 | 李四      ||  1990 | 英语系         | 辽宁省阜新市       |
| 905 | 王五      ||  1991 | 英语系         | 福建省厦门市       |
| 906 | 王六      ||  1988 | 计算机系       | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
4 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> insert into student values(907,'李九','男','2005','中文系','北京市昌平区');
mysql> select * from student where year(now()) - birth between 18 and 22;
+-----+--------+------+-------+------------+--------------------+
| id  | name   | sex  | birth | department | address            |
+-----+--------+------+-------+------------+--------------------+
| 907 | 李九    ||  2005 | 中文系      | 北京市昌平区       |
+-----+--------+------+-------+------------+--------------------+
1 row in set (0.00 sec)

在这里插入图片描述

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

mysql> select department,count(*) 总人数 from student group by department;
+--------------+-----------+
| department   | 总人数    |
+--------------+-----------+
| 计算机系     |         2 |
| 中文系       |         3 |
| 英语系       |         2 |
+--------------+-----------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select c_name 学科,max(grade) 最高成绩  from score group by c_name;
+-----------+--------------+
| 学科      | 最高成绩     |
+-----------+--------------+
| 计算机    |           98 |
| 英语      |           94 |
| 中文      |           95 |
+-----------+--------------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select c_name 科目,grade 成绩 from score s inner join student stu on s.stu_id=stu.id where stu.name='李四';
+-----------+--------+
| 科目      | 成绩   |
+-----------+--------+
| 计算机    |     70 |
| 英语      |     92 |
+-----------+--------+
2 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select stu.*,s.c_name,s.grade from student stu inner join score s on stu.id=s.stu_id;
+-----+-----------+------+-------+--------------+--------------------+-----------+-------+
| id  | name      | sex  | birth | department   | address            | c_name    | grade |
+-----+-----------+------+-------+--------------+--------------------+-----------+-------+
| 901 | 张老大    ||  1985 | 计算机系     | 北京市海淀区       | 计算机    |    98 |
| 901 | 张老大    ||  1985 | 计算机系     | 北京市海淀区       | 英语      |    80 |
| 902 | 张老二    ||  1986 | 中文系       | 北京市昌平区       | 计算机    |    65 |
| 902 | 张老二    ||  1986 | 中文系       | 北京市昌平区       | 中文      |    88 |
| 903 | 张三      ||  1990 | 中文系       | 湖南省永州市       | 中文      |    95 |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       | 计算机    |    70 |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       | 英语      |    92 |
| 905 | 王五      ||  1991 | 英语系       | 福建省厦门市       | 英语      |    94 |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       | 计算机    |    90 |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       | 英语      |    85 |
+-----+-----------+------+-------+--------------+--------------------+-----------+-------+
10 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select name 姓名,sum(grade) 总成绩 from student stu inner join score s on stu.id=s.stu_id group by stu.name;
+-----------+-----------+
| 姓名      | 总成绩    |
+-----------+-----------+
| 张老大    |       178 |
| 张老二    |       153 |
| 张三      |        95 |
| 李四      |       162 |
| 王五      |        94 |
| 王六      |       175 |
+-----------+-----------+
6 rows in set (0.02 sec)

在这里插入图片描述

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

mysql> select c_name 科目,avg(grade) 平均成绩 from score group by c_name;
+-----------+--------------+
| 科目      | 平均成绩     |
+-----------+--------------+
| 计算机    |      80.7500 |
| 英语      |      87.7500 |
| 中文      |      91.5000 |
+-----------+--------------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select stu.*,s.c_name,s.grade from student stu inner join score s on stu.id=s.stu_id where s.c_name='计算机' and s.grade<95;
+-----+-----------+------+-------+--------------+--------------------+-----------+-------+
| id  | name      | sex  | birth | department   | address            | c_name    | grade |
+-----+-----------+------+-------+--------------+--------------------+-----------+-------+
| 902 | 张老二    ||  1986 | 中文系       | 北京市昌平区       | 计算机    |    65 |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       | 计算机    |    70 |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       | 计算机    |    90 |
+-----+-----------+------+-------+--------------+--------------------+-----------+-------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select * from student where id in (select stu_id from score where stu_id in (select stu_id from score where c_name = '英语') and c_name = '计算机');
+-----+-----------+------+-------+--------------+--------------------+
| id  | name      | sex  | birth | department   | address            |
+-----+-----------+------+-------+--------------+--------------------+
| 901 | 张老大    ||  1985 | 计算机系     | 北京市海淀区       |
| 904 | 李四      ||  1990 | 英语系       | 辽宁省阜新市       |
| 906 | 王六      ||  1988 | 计算机系     | 湖南省衡阳市       |
+-----+-----------+------+-------+--------------+--------------------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select name,c_name,grade from student stu inner join score s on stu.id=s.stu_id  where c_name='计算机' order by grade desc;
+-----------+-----------+-------+
| name      | c_name    | grade |
+-----------+-----------+-------+
| 张老大    | 计算机    |    98 |
| 王六      | 计算机    |    90 |
| 李四      | 计算机    |    70 |
| 张老二    | 计算机    |    65 |
+-----------+-----------+-------+
4 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select student.id from student union select score.stu_id from score;
+-----+
| id  |
+-----+
| 901 |
| 902 |
| 903 |
| 904 |
| 905 |
| 906 |
| 907 |
+-----+
7 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select name,department,c_name,grade from student stu inner join score s on stu.id=s.stu_id where name regexp '^(张|王)';
+-----------+--------------+-----------+-------+
| name      | department   | c_name    | grade |
+-----------+--------------+-----------+-------+
| 张老大    | 计算机系     | 计算机    |    98 |
| 张老大    | 计算机系     | 英语      |    80 |
| 张老二    | 中文系       | 计算机    |    65 |
| 张老二    | 中文系       | 中文      |    88 |
| 张三      | 中文系       | 中文      |    95 |
| 王五      | 英语系       | 英语      |    94 |
| 王六      | 计算机系     | 计算机    |    90 |
| 王六      | 计算机系     | 英语      |    85 |
+-----------+--------------+-----------+-------+
8 rows in set (0.00 sec)

在这里插入图片描述

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

mysql> select name,department,c_name,grade,address from student stu inner join score s on stu.id = s.stu_id where stu.address like'湖南%';
+--------+--------------+-----------+-------+--------------------+
| name   | department   | c_name    | grade | address            |
+--------+--------------+-----------+-------+--------------------+
| 张三   | 中文系       | 中文      |    95 | 湖南省永州市       |
| 王六   | 计算机系     | 计算机    |    90 | 湖南省衡阳市       |
| 王六   | 计算机系     | 英语      |    85 | 湖南省衡阳市       |
+--------+--------------+-----------+-------+--------------------+
3 rows in set (0.00 sec)

在这里插入图片描述

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

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

相关文章

C#用double.TryParse(String, Double)方法将字符串类型数字转换为数值类型

目录 一、定义 二、实例 命名空间: System 程序集: System.Runtime.dll 一、定义 将数字的字符串表示形式转换为它的等效双精度浮点数。 一个指示转换是否成功的返回值。 public static bool TryParse (string? s, out double result…

Rust-所有权和移动语义

什么是所有权 拿C语言的代码来打个比方。我们可能会在堆上创建一个对象&#xff0c;然后使用一个指针来管理这个对象&#xff1a; Foo *p make_object("args");接下来&#xff0c;我们可能需要使用这个对象&#xff1a; use_object(p);然而&#xff0c;这段代码之…

初识OpenCV

首先你得保证你的虚拟机Ubuntu能上网 可看 http://t.csdnimg.cn/bZs6c 打开终端输入 sudo apt-get install libopencv-dev 回车 输入密码 回车 遇到Y/N 回车 OpenCV在线文档 opencv 文档链接 点zip可以下载&#xff0c;点前面的直接在线浏览&#xff0c;但是很慢 https…

AI嵌入式K210项目(3)-GPIO控制

文章目录 前言一、背景知识二、背景知识二、开始你的表演代码实现 总结 前言 前面介绍了开发板和环境搭建的基本情况&#xff0c;接下来我们开始学习使用C进行裸板开发&#xff0c;本节课先来学习下K210最基础的功能&#xff0c;引脚映射和点灯。 在开始具体学习之前&#xff…

跟着cherno手搓游戏引擎【4】窗口抽象、GLFW配置、窗口事件

引入GLFW&#xff1a; 在vendor里创建GLFW文件夹&#xff1a; 在github上下载&#xff0c;把包下载到GLFW包下。 GitHub - TheCherno/glfw: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input修改SRC/premake5.lua的配置&#xff1a;12、13、15、36…

多云架构下的点击流数据分析

在出海的大趋势下&#xff0c;需要对点击流数据进行分析&#xff0c;以便更快的确定客户。作为多家云厂商的合作伙伴&#xff0c;九河云将提供点击流数据分析的改良方案。 对于这个需求可以借助aws的受众细分和定位解决方案&#xff0c;您可以应用基于云的分析和机器学习来减少…

Seaborn——可视化的具体API应用

一、Seaborn概述 Seaborn 是基于 matplotlib的图形可视化 python包。提供了一种高度交互式界面&#xff0c;便于用户能够做出各种有吸引力的统计图表。 Seaborn在 matplotlib的基础上进行了更高级的API封装&#xff0c;从而使得作图更加容易&#xff0c;在大多数情况下使用seab…

高可用架构去中心化重要?

1 背景 在互联网高可用架构设计中&#xff0c;应该避免将所有的控制权都集中到一个中心服务&#xff0c;即便这个中心服务是多副本模式。 对某个中心服务&#xff08;组件&#xff09;的过渡强依赖&#xff0c;那等同于把命脉掌握在依赖方手里&#xff0c;依赖方的任何问题都可…

kafka学习笔记-- 文件清理策略与高效读写数据

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

机器学习学习笔记(吴恩达)(第三课第一周)(无监督算法,K-means、异常检测)

欢迎 聚类算法&#xff1a; 无监督学习&#xff1a;聚类、异常检测 推荐算法&#xff1a; 强化学习&#xff1a; 聚类&#xff08;Clustering&#xff09; 聚类算法&#xff1a;查看大量数据点并自动找到彼此相关或相似的数据点。是一种无监督学习算法 聚类与二院监督…

如何使用服务器?

文章目录 如何使用服务器&#xff1f;一、工具二、第一种方法三、第二种方法四、实例 个人经验 如何使用服务器&#xff1f; 本文详细介绍了如何利用服务器跑模型&#xff0c;具体流程如下&#xff1a; 一、工具 ToDeskPyCharm Professional移动硬盘JetBrains GatewayGit 二…

微信小程序------WXML模板语法之条件渲染和列表渲染

目录 前言 一、条件渲染 1.wx:if 2. 结合 使用 wx:if 3. hidden 4. wx:if 与 hidden 的对比 二、列表渲染 1. wx:for 2. 手动指定索引和当前项的变量名* 3. wx:key 的使用 前言 上一期我们讲解wxml模版语法中的数据绑定和事件绑定&#xff08;上一期链接&#xff1a;…

溯源阿里巴巴的中台架构

明朝可以说是中国封建王朝中最后一个由汉人统治的王朝&#xff0c;就算是最后清王朝也是不断的学习汉人的治国方略&#xff0c;但是学习最多的当然是明朝。 其实阿里巴巴的中台战略其实和明朝的历史还是蛮像的&#xff0c;这里小编就和大家好好的探讨一下。 今天先来从明朝的…

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)

文章目录 一、Vuex1&#xff09;理解vuex2&#xff09;优点3&#xff09;何时使用&#xff1f;4&#xff09;使用步骤① 安装vuex② 注册vuex③ 引用vuex④ 创建仓库Store五个模块介绍 5&#xff09;基本使用 二、Vue-router三、LocalStorage与SessionStorage、cookie的使用 一…

漏洞复现-金和OA jc6/servlet/Upload接口任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

python统计分析——生成正态分布随机数

参考资料&#xff1a;用python动手学统计学&#xff0c;帮助文档 方法1&#xff1a;scipy.stats.norm.rvs() from scipy import stats stats.norm.rvs(loc4,scale0.8,size10) 参数介绍如下&#xff1a; loc&#xff1a;表示正态分布的均值&#xff0c;默认为0 scale&#…

WinSCP传文件到Ubuntu提示Permission denied

使用WinSCP传文件到一台Ubuntu服务器时&#xff0c;提示Permission denied。 客户端&#xff1a;Windows 10 服务器&#xff1a;hyper-V虚拟机 Ubuntu 20.04 WinSCP版本&#xff1a;WinSCP 6.1 文章目录 WinSCP工具介绍WinSCP开源免费WinSCP优点 Permission denied 解决方法scp…

机器学习——主成成分分析PCA

如上图所示&#xff0c;一共有4个属性&#xff0c;身高&#xff08; m为单位&#xff09;&#xff0c;身高&#xff08;cm&#xff09;,时速&#xff08;每小时公里&#xff09;&#xff0c;时速&#xff08;每小时里&#xff09;&#xff0c;身高的两个属性是相关的&#xff0…

bee工具的使用及创建第一个项目

前提文章&#xff1a;beego的安装及配置参数说明-CSDN博客 提示&#xff1a;beego框架下项目需要再GOPATH/src下进行开发&#xff0c;我的GOPATH是C:\Users\leell\go web项目创建 通过 bee new 创建web项目 C:\Users\leell\go\src>bee new beego-web 2024/01/15 21:40:0…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT&#xff1a;从简洁美到深度思考的文本生成之旅 近年来&#xff0c;文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中&#xff0c;文心一言和ChatGPT作为两个备受瞩目的工具&#xff0c;各自以独特的优势展现在用户面前。本文将…