常用sql语句练习(一)

        在平常的开发工作中,经常会用到sql语句、比如常见的列表数据查询、报表数据的统计,写好sql语句对于我们非常重要。今天,简单来总结下常用的sql语句。

        建表:

-- 学生表
CREATE TABLE s_students (
    student_id INT PRIMARY KEY,
    student_name VARCHAR(50) NOT NULL,
    gender VARCHAR(10),
    age INT
);

-- 课程表
CREATE TABLE s_courses (
    course_id INT PRIMARY KEY,
    course_name VARCHAR(50) NOT NULL,
    teacher VARCHAR(50),
    credit INT
);

-- 成绩表
CREATE TABLE s_grades (
    student_id INT,
    course_id INT,
    score INT,
    PRIMARY KEY (student_id, course_id)
);

        1:查询学生各科成绩都大于80的学生姓名:

select st.student_name
from 
s_grades sg left join s_students st on sg.student_id = st.student_id 
where sg.score > 80 
GROUP BY sg.student_id 
HAVING count(sg.score) = 2

        2:查询课程id为1的课程比课程id为2的成绩高的学生姓名:

select st.student_name
from s_students st 
left join s_grades sg1 on st.student_id = sg1.student_id and sg1.course_id = 1
left join s_grades sg2 on st.student_id = sg2.student_id and sg2.course_id = 2
where sg1.score > sg2.score

        3:查询语文比数学成绩高的学生姓名:

select st.student_name
from s_students st 
left join s_grades sg1 on st.student_id = sg1.student_id
left join s_courses sc1 on sg1.course_id = sc1.course_id
left join s_grades sg2 on st.student_id = sg2.student_id
left join s_courses sc2 on sg2.course_id = sc2.course_id
where sg1.score > sg2.score
and sc1.course_name = '语文'
and sc2.course_name = '数学'

或者

select st.student_name,sg1.course_id,sg1.score as '语文',sg2.course_id, sg2.score as '数学'
from s_students st 
left join s_grades sg1 on st.student_id = sg1.student_id
inner join s_courses sc1 on sg1.course_id = sc1.course_id  and sc1.course_name = "语文"
left join s_grades sg2 on st.student_id = sg2.student_id
inner join s_courses sc2 on sg2.course_id = sc2.course_id  and sc2.course_name = "数学"
where sg1.score > sg2.score

        4:查询平均成绩大于70分的学生姓名:

select st.student_name from 
s_students st 
left join s_grades sg on st.student_id = sg.student_id 
GROUP BY st.student_id 
having AVG(sg.score) > 70

        5:查询学生选课数量及总成绩并按总成绩排名:

select st.student_name,
count(sg.course_id),
sum(sg.score) from 
s_students st 
left join s_grades sg on 
st.student_id = sg.student_id 
GROUP BY st.student_id 
order by sum(sg.score) desc;

        6:查询姓李老师的数量:

select count(*)
from s_courses
where teacher like '李%'

        7:查询学生的各科成绩,如果成绩为空,则用0表示:

select 
ss.student_name,
IFNULL(sg.score,0) 
from s_students ss 
left join s_grades sg on ss.student_id = sg.student_id

        8:查询学生的每门成绩,并在一行数据中展示语文,数学成绩:

select 
ss.student_name,
sum(case when sg.course_id = 1 then sg.score end) as '语文',
sum(case when sg.course_id = 2 then sg.score end) as '数学'
from s_students ss 
left join s_grades sg on ss.student_id = sg.student_id
GROUP BY ss.student_name

        9:查询有一门及以上成绩小于60分的学生信息及平均成绩:

select ss.student_name, round(avg(sg.score)) 
from
s_students ss 
left join s_grades sg on ss.student_id = sg.student_id
where sg.score < 60 
GROUP BY ss.student_id 
HAVING count(sg.score) >= 1

        10:查询每个学生数学和语文成绩,大于80为优秀,否则为一般:

select 
ss.student_name,
case when (sum(case when sg.course_id = 1 then sg.score end)) > 80 then '优秀' else '一般' end as '语文',
case when (sum(case when sg.course_id = 2 then sg.score end)) > 80 then '优秀' else '一般' end as '数学'
from s_students ss 
left join s_grades sg on ss.student_id = sg.student_id
GROUP BY ss.student_name 

        以上为常用基本sql语句总结。加油,美好的风景一直在路上!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人脸美妆SDK解决方案,自研人脸美妆方案

美妆已经成为视频内容中不可或缺的一部分。从拍摄到编辑&#xff0c;再到直播&#xff0c;美妆效果都能为视频内容增添魅力&#xff0c;吸引更多观众的眼球。为了满足企业对于高质量美妆效果的需求&#xff0c;美摄科技凭借多年的技术积累和创新精神&#xff0c;推出了全新的人…

Jmeter 中 CSV 如何参数化测试数据并实现自动断言

当我们使用Jmeter工具进行接口测试&#xff0c;可利用CSV Data Set Config配置元件&#xff0c;对测试数据进行参数化&#xff0c;循环读取csv文档中每一行测试用例数据&#xff0c;来实现接口自动化。此种情况下&#xff0c;很多测试工程师只会人工地查看响应结果来判断用例是…

局域网监控软件能干什么|有哪些好用的局域网监控软件

企业局域网已成为日常工作中不可或缺的一部分。 然而&#xff0c;网络环境的复杂性和员工上网行为的多样性&#xff0c;使得企业面临着诸多安全风险和管理挑战。 因此&#xff0c;高效局域网监控上网记录监测成为了企业保障信息安全和提升工作效率的重要手段。 高效局域网监控…

linux - 主次设备号自动申请

alloc_chrdev_region 原型如下&#xff0c;该函数向内核申请一个空闲的主设备号。 alloc_chrdev_region(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, "aputriger0"); 第四个参数是我们使用cat /proc/devices 看到的名称 /*** alloc_chrdev_region() - register a…

智慧交通系统:未来出行,从这里开始

随着城市化进程的加快&#xff0c;交通拥堵、事故频发、停车难等问题日益凸显&#xff0c;传统交通管理模式已难以满足现代社会的需求。智慧交通系统作为解决这些问题的关键&#xff0c;通过集成创新技术&#xff0c;实现交通管理的智能化、信息化&#xff0c;提高交通系统的运…

TC6291C 是一款电流模式升压型DC-DC转换器芯片

一般概述 TC6291C是一款电流模式升压型DC-DC转换器。其脉宽调制电路&#xff0c;内置0.2Q功率场效应管使这个调节器具有高功率效率。内部补偿网络也减少了多达6个的外部元件。误差信号放大器的同相输入端连接到0.6V精密基准电压&#xff0c;内部软启动功能可以减小瞬间突…

一文带你了解 Oracle 23ai 新特性 Vector 的基础用法

Oracle Database 23ai 来了&#xff0c;虽然目前只是云上可商用&#xff0c;但是 OP 有 FREE 版本可以进行开发。 本文将介绍 Oracle 23ai 的新特性之一&#xff1a; AI 向量搜索&#xff0c;的部分内容。 向量数据类型 23ai 新增向量数据类型&#xff0c;可以用于表示一系列的…

【PyTorch单点知识】深入理解与应用转置卷积ConvTranspose2d模块

文章目录 0. 前言1. 转置卷积概述2. nn.ConvTranspose2d 模块详解2.1 主要参数2.2 属性与方法 3. 计算过程&#xff08;重点&#xff09;3.1 基本过程3.2 调整stride3.3 调整dilation3.4 调整padding3.5 调整output_padding 4. 应用实例5. 总结 0. 前言 按照国际惯例&#xff0…

3399 ubuntu系统启动后,gpio已被初始化问题查找

问题描述: 使用cat /sys/kernel/debug/gpio后发现,gpio-55已经被设备树初始化了。 如果要找到这个引脚的设置代码,需要一点点查找。这里记录了比较快速的办法 gpio引脚变换 gpio-55需要转换成对应的引脚编号 根据https://blog.csdn.net/ch122633/article/details/120233…

C语言实现面向对象—以LED驱动为例

点亮一个LED 常见的LED代码 分层分离思想 面向对象的LED驱动 LED左边高电平。 当LED右边为低电平时&#xff0c;LED有电流通过&#xff0c;LED亮。反之&#xff0c;LED灭 GPIO功能描述&#xff1a; 点亮LED的步骤及代码&#xff1a; 开启GPIO的时钟 配置GPIO为输出模式 …

前端数据可视化基础(折线图)

目录 前言&#xff1a; 画布&#xff1a; 折线图 (Line Chart): 前言&#xff1a; 前端中的数据可视化是指将大量数据以图形或图像的形式在前端页面上展示出来&#xff0c;以便用户能够更直观地理解和分析这些数据。数据可视化是一种强大的工具&#xff0c;它利用了人类视觉…

城市二手房数据分析与房价预测

实现功能 数据分析 二手房价格-时间分析 二手房数量-时间分析 二手房分布-区域分析 二手房户型分析 二手房朝向分析 二手房价格-区域分析 二手房热词词云 房价预测 采用合适的算法模型&#xff0c;对模型进行评估。通过输入影响因素输出预测价格。 采用技术与框架 M…

在Unity中实现分页数据显示和分页控制

参考&#xff1a;用两种简单的方式实现unity的分页效果 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Rendering.VirtualTexturing; using UnityEngine.TerrainUtils;public class PageControll…

五一反向旅游,景区“AI+视频监控”将持续助力旅游业发展

一、建设背景 每年五一劳动节出去旅游都是人挤人状态&#xff0c;这导致景区的体验感极差。今年“五一反向旅游”的话题冲上了热搜&#xff0c;好多人选择了五一之后再出去旅游&#xff0c;避开拥挤的人群&#xff0c;这个时候景区的监管力度和感知能力就更要跟上去&#xff0…

Gradio之blocks灵活搭建页面

这里写目录标题 搭建一个UI界面搭建上半部分的框架比例调节以及其他效果搭建下半部分左边部分搭建下半部分右边部分拓展-CSS的应用 使用标签搭建第二个页面示例 补充AccordionGroup() 搭建一个UI界面 搭建上半部分的框架 如下图&#xff0c;我们想要基本还原下图右边的UI界面…

AI去衣技术在动画制作中的应用

随着科技的发展&#xff0c;人工智能&#xff08;AI&#xff09;已经在各个领域中发挥了重要作用&#xff0c;其中包括动画制作。在动画制作中&#xff0c;AI去衣技术是一个重要的工具&#xff0c;它可以帮助动画师们更加高效地完成工作。 AI去衣技术是一种基于人工智能的图像…

如何自己快速的制作流程图?6个软件教你快速进行流程图制作

如何自己快速的制作流程图&#xff1f;6个软件教你快速进行流程图制作 自己制作流程图可以是项目管理、流程设计或教学展示中的重要环节。以下是六款常用的流程图制作软件&#xff0c;它们都提供了快速、简单的方式来制作流程图&#xff1a; 迅捷画图&#xff1a;这是一款非…

Azide-PEG-Azide,82055-94-5可以用于制备抗体、蛋白质、多肽等生物分子的标记物

【试剂详情】 英文名称 Azide-PEG-Azide&#xff0c;N3-PEG-N3 中文名称 叠氮-聚乙二醇-叠氮&#xff0c;聚氧乙烯二叠氮化物 CAS号 82055-94-5 外观性状 由分子量决定&#xff0c;粘稠液体或者固体。 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#…

用友GRP A++Cloud 政府财务云 任意文件读取漏洞复现

0x01 产品简介 用友GRP A++Cloud 政府财务云系统具有多项核心功能,旨在满足各类组织的财务管理需求。首先,它提供了财务核算功能,能够全面管理企业的总账、固定资产、现金、应付应收等模块,实时掌握企业的财务状况,并通过科目管理、凭证处理、报表分析等功能为决策提供有…

启明云端ESP8266+企业微信考勤机项目,多种方式认证能防止代打

智能考勤机需要有识别功能&#xff0c;用户容量&#xff0c;记录容量限制&#xff0c;还有物联网通讯方式&#xff0c;最后衔接到云平台&#xff0c;最后就是根据具体需求来设计。 ①识别方式&#xff1a;现如今市场上的考勤机主要有人脸、指纹、IC卡和ID卡等多种识别方式。不…
最新文章