MySQL多表关联查询练习题

一、创建表的素材

1.创建student和score表
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)
);
创建score表。SQL代码如下:
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)
);
2.为student表和score表增加记录
向student表插入记录的INSERT语句如下:
INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');
INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');
INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市');
INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');
INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');
INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');
向score表插入记录的INSERT语句如下:
INSERT INTO score VALUES(NULL,901, '计算机',98);
INSERT INTO score VALUES(NULL,901, '英语', 80);
INSERT INTO score VALUES(NULL,902, '计算机',65);
INSERT INTO score VALUES(NULL,902, '中文',88);
INSERT INTO score VALUES(NULL,903, '中文',95);
INSERT INTO score VALUES(NULL,904, '计算机',70);
INSERT INTO score VALUES(NULL,904, '英语',92);
INSERT INTO score VALUES(NULL,905, '英语',94);
INSERT INTO score VALUES(NULL,906, '计算机',90);
INSERT INTO score VALUES(NULL,906, '英语',85);

二、题目要求 

1.查询student表的所有记录
2.查询student表的第2条到4条记录
3.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
4.从student表中查询计算机系和英语系的学生的信息
5.从student表中查询年龄18~22岁的学生信息
6.从student表中查询每个院系有多少人
7.从score表中查询每个科目的最高分
8.查询李四的考试科目(c_name)和考试成绩(grade)
9.用连接的方式查询所有学生的信息和考试信息
10.计算每个学生的总成绩
11.计算每个考试科目的平均成绩
12.查询计算机成绩低于95的学生信息
13.查询同时参加计算机和英语考试的学生的信息
14.将计算机考试成绩按从高到低进行排序
15.从student表和score表中查询出学生的学号,然后合并查询结果
16.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
17.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

三、完成步骤 

3.1 登录MySQL并创建表

①登录MySQL并切换数据库

创建student和score表

3.2 插入数据 

为student表增加记录

②为score表增加记录

3.3 查询student表的所有记录

①命令

mysql> select * from student;

②结果

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

①命令

mysql> select * from student  limit 1,3;

②结果

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

①命令

mysql> select id,name,department from student;

②结果 

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

①命令

#方法一
mysql> select * from student where department = "计算机系" or department = "英语系";
#方法二
mysql> select * from student where department regexp '(计算机系|英语系)';

②结果

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

①命令

mysql> select * from student where 2024-birth between 18 and 22;

②结果

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

①命令

#方法一(不建议使用)
mysql> select count(*) from student where department="计算机系";
mysql> select count(*) from student where department="中文系";
mysql> select count(*) from student where department="英语系";
#方法二
mysql> select department,count(*) as "每个院系总人数" from student group by department;

②结果

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

①命令

mysql> select c_name,max(grade) from score group by c_name;

②结果

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

①命令

mysql> select st.name, sc.c_name, sc.grade-> from student st-> inner join score sc on st.id = sc.stu_id-> where st.name = "李四";

②结果

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

①命令

mysql> select st.*,sc.* from student st left join score sc on (st.id=sc.stu_id);

②结果

3.12 计算每个学生的总成绩 

①命令

mysql> select st.name,sum(sc.grade) from student st left join score sc on st.id=sc.stu_id group by st.name;

②结果

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

①命令

#方法一
mysql> select sc.c_name,avg(sc.grade) from score sc group by sc.c_name;
#方法二
mysql> select c_name,avg(grade) from score group by c_name;

②结果

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

①命令

mysql> select st.name,sc.grade from score sc inner join student st on st.id=sc.stu_id where c_name='计算机' and grade < 95;

②结果

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

①命令

mysql> select sc.stu_id,group_concat(sc.c_name),st.name,st.sex,st.birth,st.department,st.address from score sc,student st where st.id=sc.stu_id group by sc.s
tu_id having group_concat(sc.c_name)='计算机,英语';

②结果

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

①命令

mysql> select * from score where c_name='计算机' order by grade desc;

②结果

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

①命令

mysql> select st.id,sc.stu_id from student st left join score sc on st.id=sc.stu_id;

②结果

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

①命令

mysql> select st.name, st.department, sc.c_name, sc.grade-> from student st-> inner join score sc on st.id = sc.stu_id-> where st.name like '张%' or st.name like '王%';

②结果

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

①命令

mysql> select st.name,st.birth,st.department,sc.c_name,sc.grade-> from student st-> inner join score sc on (st.id = sc.stu_id)-> where st.address like '湖南省%';

②结果

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

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

相关文章

Android的setContentView流程

一.Activity里面的mWindow是啥 在ActivityThread的performLaunchActivity方法里面&#xff1a; private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {ActivityInfo aInfo r.activityInfo;if (r.packageInfo null) {r.packageInfo getP…

15 万奖金!开放原子开源大赛 OpenAnolis -云原生赛题报名开始

开放原子开源基金会牵头发起的首届“开放原子开源大赛”&#xff0c;旨在联合开源组织、企事业单位、高等院校、科研院所、行业组织、投融资机构等多方资源&#xff0c;充分发挥产业链生态上下游的协同能力&#xff0c;基于开源共享、共建共治的原则共同举办。大赛搭建面向全球…

教育新势力:多端口知识付费小程序重塑在线教育生态

随着知识付费市场的蓬勃发展&#xff0c;多端口知识付费小程序已成为课程销售的关键工具。本文将探讨多端口知识付费小程序的重要性和乔拓云教育系统的功能&#xff0c;帮助您在网上成功销售课程。 一、多端口知识付费小程序的优点 多端口知识付费小程序具有多渠道触达用户、提…

IOS 相机权限申请-swift

配置描述 在Info.plist文件中&#xff0c;新建一个键值对Privacy - Camera Usage Description&#xff08;或者NSCameraUsageDescription&#xff09;&#xff0c;值为申请描述说明&#xff0c;自定义的 申请 然后在需要申请的文件中导入AVFoundation import AVFoundation…

你觉得哪个软件写verilog体验最好?

**“你觉得哪个软件写verilog体验最好&#xff1f;”**这个问题是我再网络上看到的一个热点话题&#xff0c;浏览量高达733911&#xff0c;引起大家的广泛讨论。移知教育小编特意请教了行业大咖&#xff0c;下面为大家分享解答&#xff0c;希望能为大家带来帮助。 有几个流行的…

跟着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…

分布式架构理论:从头梳理分布式架构的重难点

文章目录 一、分布式架构 - 系统理论1、分布式一致性与CAP理论2、BASE理论3、分布式一致性算法&#xff1a;Raft&#xff08;1&#xff09;Paxos算法&#xff08;2&#xff09;Raft算法&#xff08;3&#xff09;共识算法&#xff1a;拜占庭将军问题 4、脑裂现象和Lease机制&am…

AI模型理解误区:微调垂直行业-VS-企业专属知识库或AI助理

概述 企业定制私有化大模型的区别&#xff0c;分为训练大模型和调用大模型两种方向&#xff0c;以及企业自己的智能客服的实现方法。 - 企业定制的私有化大模型与一般的大模型不同&#xff0c;需要高成本训练。- 企业可以选择调用已经训练好的大模型来应用。- 企业可以使用向量…

今天吃什么小游戏(基于Flask框架搭建的简单应用程序,用于随机选择午餐选项。代码分为两部分:Python部分和HTML模板部分)

今天吃什么 一个简单有趣的外卖点饭网站&#xff0c;不知道吃什么的时候&#xff0c;都可以用它自动决定你要吃的&#xff0c;包括各种烧烤、火锅、螺蛳粉、刀削面、小笼包、麦当劳等午餐全部都在内。点击开始它会随意调出不同的午餐&#xff0c;点击停止就会挑选一个你准备要吃…

如何用ArcGIS制作城市用地适应性评价

01概述 “城市用地适宜性评价是城市总体规划的一项重要前期工作&#xff0c;它首先对工程地质、社会经济和生态环境等要素进行单项用地适宜性评价&#xff0c;然后用地图叠加技术根据每个因子所占权重生成综合的用地适宜性评价结果&#xff0c;俗称“千层饼模式”。 做用地适…

git 删除 submodule 子模块的步骤

实验有效&#xff0c;这里删除了两个 submodule。 1, 执行删除 submodule mkdir tmp1 && cd tmp1 && git clone --recursive ssh://gitaaa.bbb.ccc.git \ && cd ccc/ && git checkout -b abranch_01 \ && git submodule deinit -f…

2024年腾讯云新用户优惠云服务器价格多少?

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

统计学-R语言-2.2

文章目录 前言导入.RData文件方式1方式2方式3 导入程序包方式一方式二 总结 前言 本篇文章是将上篇得软件安装完&#xff0c;对其部分功能进行介绍。 导入.RData文件 在我们日常练习时会有.RData文件导入&#xff0c;并对其进行分析&#xff0c;下面是两种方导入.RData文件。…

在windows11系统上利用docker搭建ubuntu记录

我的windows11系统上&#xff0c;之前已经安装好了window版本的docker&#xff0c;没有安装的小伙伴需要去安装一下。 下面直接记录安装linux的步骤&#xff1a; 一、创建linux容器 1、拉取镜像 docker pull ubuntu 2、查看镜像 docker images 3、创建容器 docker run --…

Java SE入门及基础(15)

Java 中的标号&#xff08;标签 label&#xff09; 1. 语法规则 标号名称 : 循环结构 2. 作用 标号的作用就是给代码添加一个标记&#xff0c;方便后面使用。通常应用在循环结构中&#xff0c;与break 语句配合使用 3. 应用场景 有如下菜单&#xff1a; 实现其中返回主菜…

RAG常见七大坑

论文题目&#xff1a;《Seven Failure Points When Engineering a Retrieval Augmented Generation System》 论文地址&#xff1a;https://arxiv.org/pdf/2401.05856.pdf 这篇论文主要探讨了构建检索增强生成系统&#xff08;Retrieval Augmented Generation, RAG&#xff09;…

idea写sql语句快捷键提醒,mapper注解开发,mybatis

第一步&#xff1a;注入SQL语言 1.显示上下文操作&#xff08;没有这个选项的话就选中sql然后直接alt回车快捷键&#xff09;2.注入语言或引用 3.mysql 第二步&#xff1a;配置MySQL数据库连接 1.首先点击侧边的数据库&#xff0c;再点击上面的加号 2.点击数据源&#xff…

低频信号发生器

前言 最近我快期末考试了&#xff0c;有点忙着复习。没时间写文章&#xff0c;不过学会了焊接 挺开心的所以买几套。 焊得怎么样这就是我们今天故事的主角“低频信号发生器”&#xff08;由于要用到所以这是购买链接&#xff09; 好&#xff0c;故事开始&#xff1a; 如何将…

手写一个starter来理解SpringBoot的自动装配

自动装配以及简单的解析源码 自动装配是指SpringBoot在启动的时候会自动的将系统中所需要的依赖注入进Spring容器中 我们可以点开SpringBootApplication这个注解来一探究竟 点开这个注解可以发现这些 我们点开SpringBootConfiguration这个注解 可以发现实际上SpringBootApp…

【网络取证篇】Windows终端无法使用ping命令解决方法

【网络取证篇】Windows终端无法使用ping命令解决方法 以Ping命令为例&#xff0c;最近遇到ping命令无法使用的情况&#xff0c;很多情况都是操作系统"环境变量"被改变或没有正确配置导致—【蘇小沐】 目录 1、实验环境&#xff08;一&#xff09;无法ping命令 &a…