17.自主练习

news2024/9/29 19:24:58

一、建表

1、建库、建表

# 创建数据库

create database mysql_exampleTest;

use mysql_exampleTest;

# 学生表

CREATE TABLE Student(

s_id VARCHAR(20),

s_name VARCHAR(20) NOT NULL DEFAULT '',

s_birth VARCHAR(20) NOT NULL DEFAULT '',

s_sex VARCHAR(10) NOT NULL DEFAULT '',

PRIMARY KEY(s_id)

);

# 课程表

CREATE TABLE Course(

c_id VARCHAR(20),

c_name VARCHAR(20) NOT NULL DEFAULT '',

t_id VARCHAR(20) NOT NULL,

PRIMARY KEY(c_id)

);

# 教师表

CREATE TABLE Teacher(

t_id VARCHAR(20),

t_name VARCHAR(20) NOT NULL DEFAULT '',

PRIMARY KEY(t_id)

);

# 成绩表

CREATE TABLE Score(

s_id VARCHAR(20),

c_id VARCHAR(20),

s_Score INT(3),

PRIMARY KEY(s_id,c_id)

);

2、插入数据:

# 插入学生表测试数据

insert into Student values('01' , '赵雷' , '1990-01-01' , '男');

insert into Student values('02' , '钱电' , '1990-12-21' , '男');

insert into Student values('03' , '孙风' , '1990-05-20' , '男');

insert into Student values('04' , '李云' , '1990-08-06' , '男');

insert into Student values('05' , '周梅' , '1991-12-01' , '女');

insert into Student values('06' , '吴兰' , '1992-03-01' , '女');

insert into Student values('07' , '郑竹' , '1989-07-01' , '女');

insert into Student values('08' , '王菊' , '1990-01-20' , '女');

Student表:

+------+--------+------------+-------+

| s_id | s_name | s_birth | s_sex |

+------+--------+------------+-------+

| 01 | 赵雷 | 1990-01-01 | 男 |

| 02 | 钱电 | 1990-12-21 | 男 |

| 03 | 孙风 | 1990-05-20 | 男 |

| 04 | 李云 | 1990-08-06 | 男 |

| 05 | 周梅 | 1991-12-01 | 女 |

| 06 | 吴兰 | 1992-03-01 | 女 |

| 07 | 郑竹 | 1989-07-01 | 女 |

| 08 | 王菊 | 1990-01-20 | 女 |

+------+--------+------------+-------+

# 课程表测试数据

insert into Course values('01' , '语文' , '02');

insert into Course values('02' , '数学' , '01');

insert into Course values('03' , '英语' , '03');

Course表:

+------+--------+------+

| c_id | c_name | t_id |

+------+--------+------+

| 01 | 语文 | 02 |

| 02 | 数学 | 01 |

| 03 | 英语 | 03 |

+------+--------+------+

# 教师表测试数据

insert into Teacher values('01' , '张三');

insert into Teacher values('02' , '李四');

insert into Teacher values('03' , '王五');

Teacher表:

+------+--------+

| t_id | t_name |

+------+--------+

| 01 | 张三 |

| 02 | 李四 |

| 03 | 王五 |

+------+--------+

# 成绩表测试数据

insert into Score values('01' , '01' , 80);

insert into Score values('01' , '02' , 90);

insert into Score values('01' , '03' , 99);

insert into Score values('02' , '01' , 70);

insert into Score values('02' , '02' , 60);

insert into Score values('02' , '03' , 80);

insert into Score values('03' , '01' , 80);

insert into Score values('03' , '02' , 80);

insert into Score values('03' , '03' , 80);

insert into Score values('04' , '01' , 50);

insert into Score values('04' , '02' , 30);

insert into Score values('04' , '03' , 20);

insert into Score values('05' , '01' , 76);

insert into Score values('05' , '02' , 87);

insert into Score values('06' , '01' , 31);

insert into Score values('06' , '03' , 34);

insert into Score values('07' , '02' , 89);

insert into Score values('07' , '03' , 98);

Score表:

+------+------+---------+

| s_id | c_id | s_Score |

+------+------+---------+

| 01 | 01 | 80 |

| 01 | 02 | 90 |

| 01 | 03 | 99 |

| 02 | 01 | 70 |

| 02 | 02 | 60 |

| 02 | 03 | 80 |

| 03 | 01 | 80 |

| 03 | 02 | 80 |

| 03 | 03 | 80 |

| 04 | 01 | 50 |

| 04 | 02 | 30 |

| 04 | 03 | 20 |

| 05 | 01 | 76 |

| 05 | 02 | 87 |

| 06 | 01 | 31 |

| 06 | 03 | 34 |

| 07 | 02 | 89 |

| 07 | 03 | 98 |

+------+------+---------+

二、实战

 # 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数

select st.*,sc.s_Score as '语文' ,sc2.s_Score '数学' 
from Student st
left join Score sc on sc.s_id=st.s_id and sc.c_id='01' 
left join Score sc2 on sc2.s_id=st.s_id and sc2.c_id='02'  
where sc.s_Score>sc2.s_Score;

# 2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数

select st.*,sc.s_Score '语文',sc2.s_Score '数学' 
from Student st
left join Score sc on sc.s_id=st.s_id and sc.c_id='01'
left join Score sc2 on sc2.s_id=st.s_id and sc2.c_id='02'
where sc.s_Score<sc2.s_Score;

# 3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

# 4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的) 

select st.s_id,st.s_name,(case when ROUND(AVG(sc.s_Score),2) is null then 0 else ROUND(AVG(sc.s_Score)) end ) cjScore 
from Student st
left join Score sc on sc.s_id=st.s_id
group by st.s_id having AVG(sc.s_Score)<60 or AVG(sc.s_Score) is NULL;

# 5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩 

select st.s_id,st.s_name,count(sc.c_id) '选课总数',(case when sum(sc.s_Score) is null or sum(sc.s_Score)='' then 0 else sum(sc.s_Score) end) '总成绩'
from Student st
left outer join Score sc on st.s_id=sc.s_id
group by st.s_id;

 

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

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

相关文章

油猴脚本注入js获取DY作品数据

油猴脚本的执行时机: 元素还未生成 https://bbs.tampermonkey.net.cn/thread-3843-1-1.html 而在控制台执行时, 通常元素已经生成 逻辑就是在网页每次发送请求时, 拦截它请求的响应数据作操作; 所以当用户作品很多时, 也需要一直滚动到全部作品请求加载完成, 触发下载 &#…

数据库经典面试题

习题一 1.1 创建表 ①创建Student表 mysql> create table Student ( -> Sno int primary key, -> Sname varchar(255), -> Ssex varchar(10), -> Sdept varchar(50) -> ); Query OK, 0 rows affected (0.01 sec) ②创建Course表 mysql…

树莓派4B +Ubuntu20.04+ROS1的使用(2)

首先确定一下主机与从机的ip地址&#xff08;非常重要&#xff09; 在这次实验中&#xff0c;主机是一台Ubuntu20.04.03系统的台式机&#xff0c;我们间通过这台准备来远程遥控树莓派上的ros1系统&#xff0c;它的ip地址是192.168.230.181 从机是一台搭载Ubuntu20.04桌面版ro…

项目管理十大知识领域之项目人力资源管理

一、项目人力资源管理的概述 作为项目管理的重要组成部分&#xff0c;项目人力资源管理旨在有效管理和利用项目团队的人力资源&#xff0c;以实现项目目标。它涵盖了对人员的招聘、培训、激励和绩效管理等方面&#xff0c;旨在确保项目团队的高效运转和成员的专业发展。项目人…

录课视频太大怎么办?3种方法一键瘦身~

录制视频是现代人常用的一种记录生活的方式&#xff0c;但是视频文件大小往往会很大&#xff0c;不利于存储和分享。为了解决这个问题&#xff0c;我们需要使用视频压缩软件来压缩视频文件大小&#xff0c;以便更方便地存储和分享。 方法一&#xff1a;嗨格式压缩大师 嗨格式压…

el-tree获取当前选中节点及其所有父节点的id(包含半选中父节点的id)

如下图,我们现在全勾中的有表格管理及其下的子级,而半勾中的有工作台和任务管理及其子级 现在点击保存按钮后,需要将勾中的节点id及该节点对应的父节点,祖先节点的id(包含半选中父节点的id)也都一并传给后端,那这个例子里就应该共传入9个id,我们可以直接将getCheckedK…

【b站咸虾米】chapter4_vue组件_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

课程地址&#xff1a;【新课uniapp零基础入门到项目打包&#xff08;微信小程序/H5/vue/安卓apk&#xff09;全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p12&share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 四、vue组件 uni-app官网 …

【面试】测试/测开(ING3)

190. 栈和堆在内存管理上的区别 栈 1&#xff09; 栈是由系统自动分配和回收的内存。 2&#xff09;栈的存储地址是由高地址向低地址扩展的。 3&#xff09;栈是一个先进后出的结构。 4&#xff09;栈的空间大小是一个在编译时确定常数&#xff0c;即栈的大小是有限制的&#x…

Windows连接Ubuntu桌面

平时Windows连接Ubuntu服务器都是使用Xshell、FinalShell等工具&#xff0c;但这些连接之后只能通过终端进行操作&#xff0c;无法用桌面方式与服务器交互。 本文介绍如何通过工具&#xff0c;实现Window连接远程Ubuntu服务器&#xff0c;并使用桌面方式交互。 系统版本&#x…

C/C++ BM5 合并K个已排序的链表

文章目录 前言题目1 解决方案一1.1 思路阐述1.2 源码 2 解决方案二2.1 思路阐述2.2 源码 总结 前言 在接触了BM4的两个链表合并的情况&#xff0c;对于k个已排序列表&#xff0c;其实可以用合并的方法来看待问题。 这里第一种方法就是借用BM4的操作&#xff0c;只不过是多个合…

Redis内部数据结构ziplist详解

什么是ziplist Redis官方对于ziplist的定义是&#xff08;出自ziplist.c的文件头部注释&#xff09;&#xff1a; The ziplist is a specially encoded dually linked list that is designed to be very memory efficient. It stores both strings and integer values, where …

three.js 缓动算法.easing(渐入相机动画)

效果&#xff1a;淡入&#xff0c;靠近物体 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div c…

go实现判断20000数据范围内哪些是素数(只能被1和它本身整除的数),采用多协程和管道实现

实现一个并发程序&#xff0c;用于寻找 20000 以内的所有素数。使用了 Goroutines 和 Channels 来分发和处理任务&#xff0c;并通过 WaitGroup&#xff08;实现为 exitChan&#xff09;来同步 Goroutines 的退出。 一.GO代码 package mainimport ("fmt""time…

docker安装confluence全套流程

docker安装confluence全套流程 1.安装mysql2.创建mysql容器3.拉取confluence7容器4.拷贝mysql驱动到confluence中:1195ef11d768为容器id(需要修改为你自己的)5.创建confluence容器6.激活confluence到数据连接可能需报数据库编码和环境隔离错误 1.安装mysql docker pull mysql/…

保姆版Vps安装灯塔(ARL)

因为灯塔的默认端口为5003&#xff0c;所以我们在安装之前就在防火墙里把我们的5003端口打开 打开端口步骤如下&#xff1a; 1.我们打开控制面板&#xff0c;在控制面板里点击 系统和安全 。如下图&#xff1a; 2.接着点击 Windows Defender防火墙,如下图&#xff1a; 3.再…

好用的流程图工具

分享工作中常用的装逼工具 目前市面上的流程图或者思维导图工具挺多的&#xff0c;但是有的会限制使用数量或者收费&#xff0c;典型的有processon、Xmind&#xff0c;推荐今天Mermaid(官网)。 快速上手 中文教程&#xff1a;Mermaid 初学者用户指南 | Mermaid 中文网。我们选择…

Spring | Spring中的Bean--下

Spring中的Bean: 4.Bean的生命周期5.Bean的配装配式 ( 添加Bean到IOC容器的方式 依赖注入的方式 )5.1 基于XML的配置5.2 基于Annotation (注解) 的装配 (更常用&#xff09;5.3 自动装配 4.Bean的生命周期 Spring容器可以管理 singleton作用域的Bean的生命周期&#xff0c;在此…

51单片机_电压采集器电压表

实物演示效果&#xff1a; https://www.bilibili.com/video/BV1My4y1F7xY/?vd_source6ff7cd03af95cd504b60511ef9373a1d 一、基本功能 利用51单片机作为主控芯片&#xff0c;3段式电压采集。模拟量经A/D&#xff08;ADC0809&#xff09;模数转换芯片&#xff0c;把模拟量转换…

【计算机网络】(1)OSI七层模型、协议、交换技术、路由器技术

文章目录 计算机网络功能与分类计算机网络的定义计算机网络的功能计算机网络的指标计算机网络的性能指标计算机网络的非性能指标 计算机网络的分布范围以及拓扑结构划分图计算机网络分类总线型拓扑星型拓扑环形图拓扑树型拓扑分布式拓扑 通信技术信道物理信道逻辑信道 发信机OS…

微信小程序(六)tabBar的使用

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1. 标签栏文字的内容以及默认与选中颜色 2. 标签栏图标的默认样式与选中样式 3. 标签选项路径页面 4.标签栏背景颜色 &#x1f43c;&#xff08;文末补充&#xff09;设置标签栏后为什么navigator标签无法跳转页…