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

第九章 汇总数据

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.mzph.cn/news/606742.shtml

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

相关文章

想要成为机器学习领域的高手吗?这里有五本必读免费书,订阅周报发链接 (下)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Azure AI 内容安全Content Safety Studio实战

Azure AI Content Safety 检测应用程序和服务中用户生成和 AI 生成的有害内容。 Azure AI 内容安全包括文本和图像 API,可用于检测有害材料。 交互式 Content Safety Studio,可用于查看、浏览和试用用于检测不同形式的有害内容的示例代码。 关注TechLead…

项目框架构建之6:编写通用主机基础类

本文是“项目框架构建”系列之6,本文介绍如何编写通用主机基础类。 1.为了构建通用主机,我们先创建主机接口IAppHost接口 接口需要有配置项,我们定义为HostConfiguration,比如我们希望用户可以设定他的工作目录,就可…

深度学习|4.7 参数和超参数

4.7 参数和超参数 超参数是指需要用户提前设置好的参数,这些超参数最终会影响到参数的数值(相当于参数是动态调整得到的) 学习率的选取 最优学习率应该能使得代价函数趋于一个较低的常数。

接口工具Apifox

最近发现一款接口测试工具--apifox,我我们很难将它描述为一款接口管理工具 或 接口自测试工具。 官方给了一个简单的公式,更能说明apifox可以做什么。 Apifox Postman Swagger Mock JMeter Apifox的特点: 接口文档定义: Apif…

CSS 发光输入框动画

<template><view class="content"><input placeholder="请输入..." class="input" /> </view> </template><script></script><style>/* 设置整个页面的背景颜色为 #212121 */body{background-c…

react native中使用tailwind并配置自动补全

使用的第三方库是tailwind-react-native-classnames&#xff0c;同类的也有tailwind-rn&#xff0c;但是我更喜欢前者官方demo&#xff1a; import { View, Text } from react-native; import tw from twrnc;const MyComponent () > (<View style{twp-4 android:pt-2 b…

【办公技巧】excel中设置选项按钮的方法

大家是否会遇到需要勾中选项的情况&#xff0c;我们可以在电子表格中制作出可以勾选、选中的选项按钮&#xff0c;今天我们一起学习一下设置方法。 首先&#xff0c;我们需要先在excel工具栏中添加一个功能模块&#xff1a;开发工具 依次点击excel中的文件 – 选项 – 自定义…

第二百五十三回

文章目录 概念介绍使用方法示例代码 概念介绍 进度条是常用的组件之一&#xff0c;它主要用来显示某种动作的完成进度。Flutter提供了多种进度条组件&#xff0c;常用的是水平进度条&#xff1a;LinearProgressIndicator&#xff1b;圆形进度条 :CircularProgressIndicator和R…

2023年,To B资本航船走向哪了?

国内To B领域在去掉泡沫、结束资本狂欢之后&#xff0c;投资决策愈加理性。但与此同时&#xff0c;下滑的步伐正在放慢&#xff0c;交易数量和金额的降低逐渐放缓&#xff0c;市场逐渐走向稳定。 作者|斗斗 编辑|皮爷 出品|产业家 2023年&#xff0c;在一众业内人士的眼中&…

文件系统与日志分析

一&#xff0c;文件系统 &#xff08;一&#xff09;inode 和block概述 1&#xff0c;文件数据包括元信息与实际数据 2&#xff0c;文件存储在硬盘上&#xff0c;硬盘最小存储单位是“扇区”&#xff0c;每个扇区存储512字节 3&#xff0c;block (块) 连续的八个扇区组成一…

从零开始了解Figma:全面介绍这款设计工具,让你熟练运用!

什么是Figma&#xff1f; 它是一个类似于Sketch或XD的UI设计工具&#xff0c;但Figma和后两者的本质区别在于它是基于web的&#xff0c;也就是说&#xff0c;只要有浏览器和网络&#xff0c;它就可以打开和使用。 Figma为什么强大&#xff1f; Windows上最好的UI设计工具 由…

Redisson 源码解析 - 分布式锁实现过程

一、Redisson 分布式锁源码解析 Redisson是架设在Redis基础上的一个Java驻内存数据网格。在基于NIO的Netty框架上&#xff0c;充分的利用了Redis键值数据库提供的一系列优势&#xff0c;在Java实用工具包中常用接口的基础上&#xff0c;为使用者提供了一系列具有分布式特性的常…

一文搞定JMM核心原理

公众号《鲁大猿》&#xff0c;寻精品资料&#xff0c;帮你构建Java全栈知识体系 www.jiagoujishu.cn &#xff08;架构技术.cn&#xff09; JMM引入 从堆栈说起 JVM内部使用的Java内存模型在线程栈和堆之间划分内存。 此图从逻辑角度说明了Java内存模型&#xff1a; # 堆栈里…

SpringBoot + Mybatis 实现多数据源原来如此简单

1、为什么需要整合多数据源 在开发的过程中&#xff0c;我们可能会遇到一个工程使用多个数据源的情况&#xff0c;总体而言分为以下几个原因 a、数据隔离&#xff1a;将不同的数据存储在不同的数据库中&#xff0c;如多租户场景 b、性能优化&#xff1a;将数据分散到多个数据库…

【野火i.MX6ULL开发板】利用microUSB线烧入Debian镜像

0、前言 烧入Debian镜像有两种方式&#xff1a;SD卡、USB SD卡&#xff1a;需要SD卡&#xff08;不是所有型号都可以&#xff0c;建议去了解了解&#xff09;、SD卡读卡器 USB&#xff1a;需要microUSB线 由于SD卡的网上资料很多了&#xff0c;又因为所需硬件&#xff08;SD卡…

Spring应用的部署与管理

一、前言 部署是将开发好的应用发布到服务器上&#xff0c;使其能够被用户访问的关键步骤。Spring框架提供了灵活的部署选项&#xff0c;本文将介绍Spring应用的常见部署方式和一些建议&#xff0c;帮助开发者顺利将应用投放到生产环境。 二、传统部署方式&#xff1a;WAR包 传…

09Bean的生命周期及循环依赖

Spring其实就是一个管理Bean对象的工厂。它负责对象的创建&#xff0c;对象的销毁等。 所谓的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程。 Bean的生命周期之5步 ● 第一步&#xff1a;实例化Bean(无参构造方法执行) ● 第二步&#xff1a;Bean属性赋值(注…

基于YOLOv7算法的高精度实时19类动物目标检测识别系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算法的高精度实时19类动物目标检测系统可用于日常生活中检测与定位19类动物目标&#xff08;水牛、 斑马、 大象、 水豚、 海龟、 猫、 奶牛、 鹿、 狗、 火烈鸟、 长颈鹿、 捷豹、 袋鼠、 狮子、 鹦鹉、 企鹅、 犀牛、 羊和老虎&#xff09;&#x…

[Kubernetes]5. k8s集群StatefulSet详解,以及数据持久化(SC PV PVC)

前面通过deployment结合service来部署无状态的应用,下面来讲解通过satefulSet结合service来部署有状态的应用 一.StatefulSet详解 1.有状态和无状态区别 无状态: 无状态(stateless)、牲畜(cattle)、无名(nameless)、可丢弃(disposable) 有状态: 有状态(stateful)、宠物(pet)…