SQL必知必会笔记(9~12章)

news2024/9/21 14:45:48

第九章 汇总数据

1、聚集函数用来进行记录数据的加工,然后再进行返回。

2、SQL的聚集函数:

函数

说明

AVG()

返回某列的平均值

COUNT()

返回某列的行数

MAX()

返回某列的最大值

MIN()

返回某列的最小值

SUM()

返回某列值之和

3、AVG()函数

AVG可以用来计算所有列的平均值,也可以计算返回某行或者某列的平均值

 SELECT AVG(DISTINCT Maths) AS res FROM transcript;

4、COUNT()函数

COUNT()函数进行计数。可利用 COUNT()确定表中行的数目或符合特定 条件的行的数目。

COUNT()函数有两种使用方式:

使用 COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值 (NULL)还是非空值。

 SELECT COUNT(*) FROM transcript;

使用 COUNT(column)对特定列中具有值的行进行计数,忽略 NULL 值。

 SELECT COUNT(Name) FROM transcript;

5、MAX()函数

MAX()返回指定列中的最大值。MAX()要求指定列名

 SELECT MAX(Maths) FROM transcript;

如果是对非数值类型(即文本类型)采用MAX函数查询,则会返回字符排序最靠后的一行记录

 SELECT MAX(Name) FROM transcript;

MAX()函数忽略列值为 NULL 的行

6、MIN()函数

MIN()的功能正好与 MAX()功能相反,它返回指定列的最小值。与 MAX() 一样,MIN()要求指定列名

7、SUM()函数

SUM()用来返回指定列值的和

 SELECT SUM(Maths) FROM transcript;

如果对文本类型进行操作,返回0
 SELECT SUM(Name) FROM transcript;

SUM()也可以用来合计计算值

 SELECT SUM(Maths+English) FROM transcript;

SUM()函数忽略列值为 NULL 的行。

8、多个聚合函数可以同时组合使用在同一个查询条件中

SELECT SUM(Maths+English) AS TOTAL, MAX(Maths) as MaxMaths, MIN(English) as MinEnglish FROM transcript;

第十章 分组数据

1、数据分组依赖两个函数GROUP BY 和HAVING

2、GROUP BY子句用于创建分组,将查询到的数据以GROUP BY的子句条件进行分组

未分组:

 SELECT Name, Count(Name) FROM transcript ;

分组:
 SELECT Name, Count(Name) FROM transcript GROUP BY Name;

3、GROUP BY 子句可以包含任意数目的列,因而可以对分组进行嵌套, 更细致地进行数据分组

4、如果在 GROUP BY 子句中嵌套了分组,数据将在最后指定的分组上进 行汇总。

5、 GROUP BY 子句中列出的每一列都必须是检索列或有效的表达式(但 不能是聚集函数)。如果在 SELECT 中使用表达式,则必须在 GROUP BY 子句中指定相同的表达式。不能使用别名。

6 、大多数 SQL 实现不允许 GROUP BY 列带有长度可变的数据类型(如文 本或备注型字段)。

7 、除聚集计算语句外,SELECT 语句中的每一列都必须在 GROUP BY 子句 中给出。

8 、如果分组列中包含具有 NULL 值的行,则 NULL 将作为一个分组返回。 如果列中有多行 NULL 值,它们将分为一组。

9 、GROUP BY 子句必须出现在 WHERE 子句之后,ORDER BY 子句之前。

10、 HAVING类似于WHERE,但是WHERE不能过滤分组,但是HAVING是可以用来进行过滤分组的

 SELECT Name, Count(Name) FROM transcript GROUP BY Name HAVING Name != 'Ben';

11 、HAVING 支持所有 WHERE 操作符,但是WHERE无法实现分组过滤

第十一章 使用子查询

1、子查询即嵌套在其他查询中的查询,在多张表存在关联关系,需要根据A表的查询信息作为B表的查询条件进行查询,就需要用到子查询

例如有两张表,一张记录分数等级,一张记录学生成绩

score_level 分数等级表

成绩表

现在想查询Maths成绩为A的学生名单

 SELECT Name, Maths FROM transcript WHERE Maths >= (SELECT score FROM score_level WHERE level = 'A');

2 、作为子查询的 SELECT 语句只能查询单个列。企图检索多个列将返回错误

第十二张 联结表

1、 为什么使用联结:联结是一种机制,用来在一条 SELECT 语句 中关联表,因此称为联结。使用特殊的语法,可以联结多个表返回一组 输出,联结在运行时关联表中正确的行

2 、创建联结示例

transcript表

student_id表

示例:

SELECT B.Name, A.Maths, A.English FROM transcript A, student_id B WHERE A.Name = B.Name;

3、 内联结INNER JOIN

内连接查询能将左表(表 A)和右表(表 B)中能关联起来的数据连接后返回。

SELECT A.Name, A.Maths, A.English FROM transcript A INNER JOIN student_id B ON A.Name = B.Name;

4、扩展其他联结方式

左联结 LEFT(OUTER ) JOIN 

左连接查询会返回左表(表 A)中所有记录,不管右表(表 B)中有没有关联的数据。在右表中找到的关联数据列也会被一起返回。

SELECT A.Name, A.Maths, A.English FROM transcript A LEFT JOIN student_id B ON A.Name = B.Name;

右联结 RIGHT(OUTER ) JOIN

右连接查询会返回右表(表 B)中所有记录,不管左表(表 A)中有没有关联的数据。在左表中找到的关联数据列也会被一起返回。

完全外联结 FULL(OUTER) JOIN

外连接查询能返回左右表里的所有记录,其中左右表里能关联起来的记录被连接后返回。

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

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

相关文章

MySQL语法练习-DML语法练习

文章目录 0、相关文章1、添加数据2、修改数据3、删除数据4、总结 0、相关文章 《MySQL练习-DDL语法练习》 1、添加数据 # 给指定字段添加数据 insert into 表名 (字段名1,字段名2,...) values(值1,值2...);# 给全部字段添加数据 insert into 表名 values(值1,值2,...);#批量…

美易官方:美股2024年开局惨淡,调整会持续多久?

美股2024年开局惨淡,调整会持续多久?美易官方平台致力于为投资者与美股深度链接 2024年,美股市场迎来了一个艰难的开局。全球经济形势的不确定性、地缘政治紧张局势以及市场预期的波动都给美股市场带来了挑战。投资者们对于未来的走势充满了疑…

这一次技术学习分享,超过苦读30本书

同学们,做个问卷调查,你参加了这次由腾讯云主办的第四期“云梯计划”了不? “云梯计划”已连续举办三年,免费为超过1万名大学生提供了腾讯云认证培训和考试名额,帮助其提升就业竞争力。 想要得到免费的系统性、实战性…

金和OA C6 CarCardInfo.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 CarCardInfo.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞…

华清远见作业第二十三天——IO(第六天)

使用有名管道完成两个进程之间相互通信 代码&#xff1a; 创建管道&#xff1a; #include<a.h> int main(int argc, const char *argv[]) {//创建有名管道文件if(mkfifo("./myfifo1", 0664) ! 0){perror("mkfifo1 error");return -1;}printf("…

Python采集猎聘网站招聘数据内容,看看现在职位风向

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.10 Pycharm 模块使用: 第三方模块&#xff0c;需安装&#xff1a; requests -> pip install requests pandas -> pip install pandas pyecharts -> pip install pyecharts 内置模块&…

JS/JQ实现小程序/H5验证码页面

话不多说&#xff0c;先上效果图 核心代码 1、html/css关键代码 <div class"obtain-verification-code"><div class"obtain-verification-code-input-content"><input id"input-0" class"verification-code-input" m…

校招社招,认知能力测验,③如何破解语言常识类测试题?

作为认知能力测评中的一个环节&#xff0c;语言常识类&#xff0c;是大概率的出现&#xff0c;不同的用人单位可能略有不同&#xff0c;语言是一切的基础&#xff0c;而常识则意味着我们的知识面的宽度。 语言常识类的测试&#xff0c;如果要说技巧&#xff1f;难说....更多的…

微信公众号H5,录音功能

功能&#xff1a; 按住录音&#xff0c;移开取消&#xff0c;调用的微信录音api&#xff0c;因手机端H5长按图片文字会放大或者选中&#xff0c;得禁止 效果图&#xff1a; html <van-popupv-model"vanPopupShow"roundposition"bottom":style"…

ElasticSearch 集群搭建与状态监控cerebro

单机的elasticsearch做数据存储&#xff0c;必然面临两个问题:海量数据存储问题、单点故障问题。为了解决存储能力上上限问题就可以用到集群部署。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard)&#xff0c;存储到多个节点单点故障问题:将分片数据在不同节点备份 (r…

SCI一区级 | Matlab实现RIME-CNN-LSTM-Mutilhead-Attention多变量多步时序预测

SCI一区级 | Matlab实现RIME-CNN-LSTM-Mutilhead-Attention多变量多步时序预测 目录 SCI一区级 | Matlab实现RIME-CNN-LSTM-Mutilhead-Attention多变量多步时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RIME-CNN-LSTM-Mutilhead-Attention霜冰算法…

MyBatisPlus学习二:常用注解、条件构造器、自定义sql

常用注解 基本约定 MybatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库表信息。可以理解为在继承BaseMapper 要指定对应的泛型 public interface UserMapper extends BaseMapper<User> 实体类中&#xff0c;类名驼峰转下划线作为表名、名为id的…

若依CRUD搬砖开始,Java小白入门(十)

背景 经过囫囵吞枣的学习若依框架&#xff0c;对于ruoyi-framework&#xff0c;common&#xff0c;安全&#xff0c;代码生成等模块都看了一圈&#xff0c;剩余的调度模块&#xff0c;这个暂时不深入&#xff0c;剩余的是ruoyi-system&#xff0c;就是用mybatis完成的&#xf…

基于算术优化算法优化的Elman神经网络数据预测 - 附代码

基于算术优化算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于算术优化算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于算术优化优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

纯血国产:鸿蒙系统与安卓分道扬镳,对低代码开发行业的影响

近日&#xff0c;科技圈迎来了一则震动性的新闻——鸿蒙系统的“独立宣言”。这一举措意味着鸿蒙系统将与安卓、iOS形成三足鼎立之势&#xff0c;为全球科技市场注入新的活力。 据华为内部人士透露&#xff0c;从明年起&#xff0c;HarmonyOS系统将不再兼容安卓应用&#xff0c…

数模学习day08-拟合算法

这里拟合算法可以和差值算法对比 引入 插值和拟合的区别 与插值问题不同&#xff0c;在拟合问题中不需要曲线一定经过给定的点。拟 合问题的目标是寻求一个函数&#xff08;曲线&#xff09;&#xff0c;使得该曲线在某种准则下与所 有的数据点最为接近&#xff0c;即曲线拟…

springCould中的Hystrix【下】-从小白开始【8】

目录 &#x1f9c2;1.熔断机制❤️❤️❤️ &#x1f32d;2.修改8001服务 ❤️❤️❤️ &#x1f95e;3.测试 ❤️❤️❤️ &#x1f953;4. 服务监控hystrixDashboard❤️❤️❤️ &#x1f32d;5.仪表盘❤️❤️❤️ &#x1f9c2;6.仪表盘的使用 ❤️❤️❤️ 1.熔断机…

Linux的Inode号和日志服务管理

目录 一、Inode号 1.inode和block 2.查看inode信息 二、日志服务管理 1.日志的级别 2.日志的种类 3.日志的功能和日志文件的分类 4.日志的格式和分析工具 三、rsyslog日志处理系统 1、使用Rsyslog创建日志优点 2、Rsyslog配置文件解析 3.通过rsyslog将ssh服务的日志…

k8s---pod基础下

k8s的pod与docker重启策略的区别 k8s的重启策略 always deployment的yaml文件只能是always&#xff0c;pod的yaml三种模式都可以。不论正常退出还是非正常退出都重启。OnFailure&#xff1a;正常退出不重启&#xff0c;非正常退出会重启Never&#xff1a;正常退出和非正常退出…

宿舍安全用电监控系统解决方案

摘 要&#xff1a;很多高校宿舍的用电功率存在限制,为此设计了宿舍用电智能监控系统。系统由主控制器、采集部分、通信部分组成。利用STM32作为主控芯片,采集部分采用BL0937芯片采集电压和电流,采集多条线路用电数据,各路数据采集通道均采用隔离保护,通信部采用4G、LoRa无线通信…