首页 > 数据库 >Mysql学习-Mysql查询(3)

Mysql学习-Mysql查询(3)

时间:2024-12-11 18:28:58浏览次数:7  
标签:GROUP 函数 price Mysql 查询 学习 fruits 表中 SELECT

一.补充概念

1.强化概念:
1).DB:数据库,保存一组有组织的容器,即存储数据的容器
2).DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据,又称为数据库软件或数
据库产品,用于创建或管理DB.
3).SQL:结构化查询语言,用于和DBMS通信的语言
2.SQL语言的分类:
SQL语言分为五种:DQL语言.DML语言.DDL语言,DCL语言,TCL语言
DQL语言(Data query language):数据査询语言(涉及到的关键字是select)
DML语言(Data manipulation language):数据操纵语言(主要涉及数据的增删改,关键字
delete,update)
(有的书上把DQL语言和DML语言和为一种,都统称为DML语言.)
DDL语言(Data definition language):数据定义语言(主要涉及库和表的建立以及删除等
DCL语言(Data control language):数据控制语言,主要涉及数据库的权限等,比如授予或回收数据
库的某种特权;
TCL语言(Transaction control language)事务控制语言.(关键字:commit,rollback)
补充MySQL的语法规范:
1).不区分大小写,但是建议关键字大写,表名,列名小写(例如写SHOW DATABASES;
2).每条命令最好用分号结尾(因为有的可以不用写分号,例如图形界面库的就可以不写分号,而在非
图形界面库的还可以用\g结尾,所以分不清,最好用分号结尾);
3).每条命令根据需要,可以进行缩进或者换行

二.查询语句

1.使用集合函数查询
有时候并不需要返回实际表中的数据,而只是对数据进行总结.MVSQL提供一些查询功能,可以对获
取的数据进行分析和报告.这些函数的功能有:计算数据表中记录行数的总数,计算某个字段列下数
据的综合,以及计算表中某个字段下的最大值,最小值或者平均值.
这些聚合函数的名称和作用如下表所示:

(1)COUNT()函数
COUNT0函数统计数据表中包含的记录行的总数,或者根据査询结果返回列中包含的数据行数.其
使用方法有两种:
COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值;
COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行
例34:查询customers表中总的行数,SQL语句如下:

//查询customers表中总的行数,SQL语句如下
SELECT COUNT(*) AS cust_num
FROM customers;
//查询customers表中有电子邮箱的顾客的总数;
SELECT COUNT(c_email) AS email_num
FROM customers;

由查询结果可以看到,表中5个customer只有3个有email,customer的email为空值NULL的记录没
有被COUNT()函数计算.
两个例子中不同的数值说明了**两种方式在计算总数的时候对待NULL值的方式不同:指定列的值
为空的行被COUNT()函数忽略;如果不指定列,而在COUNT()函数中使用星号""则所有记录都不忽

//在orderitems表中,使用COUNT0)函数统计不同订单号中订购的水果种类
SELECT o_num,COUNT(f_id)
FROM orderitems
GROUP BY o_num;

(2).SUM()函数

//在orderitems表中查询30005号订单一共购买的水果总量:
SELECT SUM(quantity)AS items_total
FROM orderitems
WHERE o_num=30005;

SUM()可以和GROUP BY一起使用,来计算每个分组的总和;

//在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量;
SELECT o_num,SUM(quantity)As items_total
FROM orderitems
GROUP BY o_num;
//在orderitems表中,使用SUM()函数统计不同订单号中订购的水果总量
SELECT o_num,SUM(quantity)As items_total
FROM orderitems
GROUP BY o_num;

由查询结果可以看到,GROUP BY按照订单号onum进行分组,SUM()函数计算每个分组中订购的
水果的总量.
注意:SUM()函数在计算时,忽略列值为NULL的行

(3).AVG()函数

//在fruits表中,查询s id=103的供应商的水果价格的平均值
SELECT AVG(f_price)As avg_price
FROM fruits
WHERE s_id=103;

AVG()可以和GROUP BY一起使用,计算每个分组的平均值

//在fruits表中,查询每一个供应商的水果价格的平均值
SELECT s_id,AVG(f_price)As avg_price
FROM fruits
GROUP BY s_id;

GROUP BY关键字根据s id字段对记录进行分组,然后计算出每个分组的平均值,这种分组求平均值
的方法非常有用,例如,求不同班级学生成绩的平均值,求不同部门工人的平均工资,求各地的年平均
气温等.
注意:AVG()函数使用时,其参数为要计算的列名称,如果要 得到多个列的多个平均值,则需要在每一
列上使用AVG()函数:

(4)MAX()函数

//在fruits表中查找市场上价格最高的水果值,
SELECT MAX(f_price)As max_price
FROM fruits;

MAX也可以和GROUP BY一起使用,来计算每个分组中的最大值

//在fruits表中查找不同供应商提供的价格最高的水果值
SELECT s_id,MAX(f_price)AS max_price
FROM fruits
GROUP BY s_id;

MAX()函数可以对字母进行大小判断,并返回最大的字符或者字符串值;
注意:MAX()函数除了用来找出最大的列值或日期值之外,还可以返回任意列中的最大值,包括返回
字符类型的最大值.在对字符类型数据进行比较时,按照字符的ASCI码值大小进行比较
,从a~z,a的
ASCI码值最小,z的最大.在比较时,先比较第一个字母,如果相等,继续比较下一个字符,一直到两个字
符不相等或者字符结束为止.例如,’b'于't'比较时,'t'为最大值;"bcd"与"bca"比较时,"bcd"为最大值;

(5)MIN()函数

//在fruits表中查找市场上价格最低的水果值:
SELECT MIN(f_price)AS min_price
FROM fruits;

MIN()也可以和GROUP BY关键字一起使用,求出每个分组中的最小值

//在fruits表中查找不同供应商提供的价格最低的水果值:
SELECT s_id,MIN(f_price)As min_price
FROM fruits
GROUP BY s_id;

MIN()函数与MAX()函数类似,不仅适用于查找数值类型,也可应用于字符类型,

标签:GROUP,函数,price,Mysql,查询,学习,fruits,表中,SELECT
From: https://blog.csdn.net/hxd030228/article/details/144370362

相关文章

  • Mysql之innodb引擎
    优势总结只有数据库引擎为innodb且事务的隔离级别repeatable——read(可重复读)的时候才会使用mvcc来实现多版本控制事务中的可重复读可以有效的避免幻读问题innodb从硬盘上读取数据的时候,会读取一整页的数据,然后加载到内容中,在内存中创建hash索引,从而提高读操作的效率。inno......
  • AI 口语学习应用 Speak 新一轮融资估值 10 亿美元;YouTube 推出 AI 多语言配音丨 RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • 企业项目真实开发--工厂模式学习
    业务需求:权益可以进行转移,权益可以分为3类会员车辆订单展现形式:其中权益转移的规则为:会员权益转移:限制填写手机号,校验填写手机号为CRM会员车辆权益转移:限制填写VIN,校验该VIN是否是实销车辆订单权益转移:限制填写手机号,校验填写手机号为CRM会员暂时关闭线上卡券和保险......
  • 用户画像--《美团机器学习实践》笔记
    原文:https://cloud.tencent.com/developer/article/2212164最近学习了用户画像方面的内容,本文主要是学习《美团机器学习实践》的读书笔记。 什么是用户画像?用户模型和用户画像的区别。用户模型是指真实用户的虚拟代表,在真实数据的基础上抽象处理的一个用户模型,是产品在描述用......
  • SSM银行学习系统buwu2--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、课题背景与意义随着金融行业的快速发展,银行业务日益复杂,对员工的专业技能和综合素质要求不断提高。传统的培训方式存在时间、地点限制,且难以精......
  • 算法分析——算法学习(前置)
    前言在学习算法时,时间复杂度和空间复杂度帮助我们评估算法的效率和资源使用情况。时间复杂度描述算法运行时间随输入规模增长的变化,指导我们选择高效的算法;空间复杂度则衡量算法占用内存的变化,确保算法在资源有限的条件下运行良好。在实际应用中,需要根据具体需求权衡时间和空......
  • 学习笔记/数学:序理论相关
    鉴于这个神(xie)奇(e)的东西在我眼前晃过的次数已经过多了,于是决定系统的学习一下。本文参考了OI-Wiki序理论,并在此基础上增添了很多个人理解,特此鸣谢。前置知识:集合、基础图论。二元关系定义何为二元关系(binaryrelation)?感性理解,二元关系就是function<bool(T1,T2)>,比如说:......
  • Less学习笔记
    1.概述Less是一款比较流行的css预处理语言,支持变量、混合、函数、嵌套、循环等特点通俗的说CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用能够解决CSS重复代码较多的问题2.编译2.1方式1安装node......
  • Visual Autoregressive Modeling(VAR)学习笔记
    paper:2404.02905(arxiv.org)https://arxiv.org/pdf/2404.02905GitHub:GitHub-FoundationVision/VAR:[NeurIPS2024Oral][GPTbeatsdiffusion......
  • 一文看懂MySQL索引下推(ICP)
    文章目录一、索引下推是什么?二、回表查询(TableLookup)是什么?聚集索引和非聚集索引如何减少回表查询?小结三、索引下推如何减少回表查询次数1.没有使用icp(索引下推)2.使用ICP四、总结索引下推的工作原理1.传统的查询处理方式:2.索引下推优化:五、索引下推的优点六、......