读取mysql数据到select_MySQL数据库8(十三)高级数据操作之select指令

查询数据

完整的查询指令:

select  select选项 字段列表  from 数据源 where 条件 group by 分组 having 条件 order by 排序 limit 限制

select选项

系统该如何对待查询得到的结果:

1、all 默认的,表示保存所有的记录;

3bf485236aca0c27e84ef86d5480a71f.png

2、distinct:去重,去除重复的记录,只保留一条(所有的字段都相同)

5054681ee78ccb3e8d73802bc7058c5a.png

字段列表

有的时候需要从多张表获取数据,在获取数据的时候,可能存在不同表中有同名的字段,需要将同名的字段命名成不同名的; alias别名

基本语法: 字段名 [as] 别名;

ce93216e7e0a613c536ea6f4e7a65951.png

from数据源

from是为前面的查询提供数据,数据源只要是一个符合二维表结构的数据即可。

单表数据

from 表名

9aeba957b866d613bde2d9d1adf4904a.png

多表数据

从多张表获取数据:

基本语法:from 表1,表2…;

结果:表的记录数相乘,字段数拼接

本质:从第一张表取出一条记录,去拼凑第二张表的所有记录,保留所有结果。得到的结果在数学上有一个专业的说法:笛卡尔积,这个结果除了给数据库造成压力,没有其他意义,应该尽量避免笛卡尔积。

动态数据

from后面跟的数据不是一个实体表,而是一个从表中查询出来得到的二维结果表。

基本语法:select  from (select 字段列表 from 表)  [as] 别名;

54b8ad57115a9292792100f2fc34bd9e.png

where子句

where子句用来从数据表获取数据的时候,然后进行条件筛选。

数据获取原理:针对表去对应的磁盘除获取所有的记录(一条条),where的作用就是在拿到一条结果就开始进行判断,判断是否符合条件;如果符合就保存下来,如果不符合直接舍弃(不放到内存中)

where是通过运算符进行结果比较来判断数据

group by子句

group by 表示分组的含义:根据指定的字段,将数据进行分组:分组的目标是为了统计。

分组统计

基本语法:group by 字段名;

错误:提示1055错误。only_full_group_by问题

先查看,然后修改。(暂时修改)

执行:

select version(), @@sql_mode;

再执行:

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

1b3cbcfaf2d10c9fe12f5f77749081d8.png

f409e3721a36bd4a1998d5d081683a4a.png

group by是为了分组进行数据统计的,如果只是想看数据显示,那么group by没什么意义:group by将数据按照指定的字段分组之后,只会保留每组的第一条记录。

利用一些统计函数(聚合函数):

count():统计每组中的数量,如果统计的目标是字段,那么不统计空NULL字段,如果为*代表统计记录。

avg():求平均值

sum():求和

max():求最大值

min():求在最小值

69b43d2f29be8a19835ece84f46b32a2.png

group_concat():为了将分组中指定的字段进行合并(字符串拼接)

e0bda914d5dcf712fdc82c300789d032.png

多分组

将数据按照某个字段进行分组之后,对已经分组的数据进行再次分组

基本语法:group by 字段1,字段2;//先按照字段1进行排序,之后将结果再按照字段2进行排序,以此类推

分组排序

Mysql中,分组默认有排序的功能:按照分组字段进行排序,默认是升序

基本语法:group by 字段 [asc|desc],字段[asc|desc];//默认是asc升序 desc降序

回溯统计

当分组进行多分组之后,往上统计的过程中,需要进行层层上报,将这种层层上报统计的过程称之为回溯统计,每一次分组向上统计的过程都会产生一次新的统计数据,而且当前数据对应的分组字段为NULL

基本语法:group by 字段 [asc|desc] with rollup;

553ff2fa0fc801fc82ada6c653f2edf4.png

有多少层就会回溯多少个。

having子句

having本质和where一样,是用来进行数据条件筛选

having是在group by子句之后,可以针对分组数据进行筛选,但是where不行

where不能使用聚合函数:聚合函数是在用在group by分组的时候,where这个时候已经运行完毕。

having在group by分组之后,可以使用聚合函数或者字段别名(where是从表中取出数据,数据在表中只有字段名没有别名这一概念,别名是在数据进入到内存之后才有的)

强调:having是在group by 之后,groupby 是在where之后;where的 时候表示将数据从磁盘拿到内存,where之后的所有操作都是内存操作。

order by 子句

order by排序,根据校对规则对数据进行排序

基本语法:order by 字段[asc|desc];// asc 升序 默认 desc降序

9ac84d595c6017be5a485cdcbc4f2e14.png

order by和group by一样,也可以进行多字段排序:先按照第一个字段进行排序,再按照第二个字段进行排序,以此类推。

基本语法:order by 字段1 规则,字段2 规则…;//规则即 desc 和asc ,asc可以不写

limit子句

limit限制子句,主要是用来限制记录数来获取。

记录数限制

纯粹的限制获取的数量:从第一条到指定的数量。

基本语法:limit 数量;

limit通常在查询的时候如果限定为一条记录的时候,使用的比较多,有时候获取多条记录并不能解决业务问题,但是会增加服务器压力

分页

利用limit来限制获取指定区间的数据。

基本语法: limit offset ,length;//offset P偏移量,从哪开始,length 就是具体获取多少条记录

Mysql中记录的数量从0开始。

limit 0,2;  //获取前两条记录

注意:limit后面的length表示最多获取对应数量,但是如果数量不够,系统不会强求

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

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

相关文章

Docker精华问答 | Docker镜像和Docker容器的关系?

毫无疑问,Docker成了近些年来最火热,甚至最具颠覆性的技术之一。国际上,所有泛云计算相关的公司,几乎都在某种程度上宣布支持并集成Docker。在2014年6月的DockerCon中,很多公司都分享了他们自己如何和Docker集成的故事…

大道至简,阿里巴巴敏捷教练的电子看板诞生记

摘要: 经历了从物理看板到电子看板的反复实践,阿里巴巴敏捷教练问菊体会最深的是“大道至简”,她说:“堆砌复杂的功能是容易的,提供简单方便的用户体验是困难的。”那么阿里巴巴的电子看板是如何诞生的呢?从…

第1篇:Flowable简介

采用springbootflowable快速实现工作流 文章目录一、什么是BPMN?二、什么是Flowable?2.1. 官方描述如下2.2. 大白话理解2.3. 官方在线文档2.4. Flowable官网2.5. Flowable开源代码仓库2.6. Flowable 最新版本(V6.4.2)截止目前下载地址2.6.1. Tomcat 版本…

阿里云启动API创新大赛 设视频技术为场景赛题

摘要: 阿里云API大赛一直以践行API经济为主旨,涌现出了很多基于API服务的优秀解决方案方案作品。本届API大赛主题为“智慧开放,互链解决”,基于广义的API经济理念,将不局限于API服务、工具、数据, 而是将AP…

BAT 力捧的 AI 项目再次爆发,这些程序员都受影响!

从2017年起,人工智能大火,几家国际大厂无论是微软 Build、Facebook F8 还是稍后的 Google I/O,莫不把“AI优先”的大旗扯上云霄。百度 AI 开发者大会,想必大家都被这次“宏颜祸水”惊呆了,但是在大会上我更关心的是李彦…

【2018新年巨献】像阿里巴巴一样高效工作!(含视频、文章、PDF文件)

摘要: Work Like Alibaba 通过线下沙龙、线上直播、内容输出三个维度,携手阿里云的典型企业用户,联合云栖社区、阿里云、钉钉阿里产品,将阿里的前沿产品技术理念、敏捷研发模式、智能运维方法、智能办公、移动办公等渐渐渗透到外部…

AliOS Things自组织网络安全认证架构概述

摘要: AliOS Things自组织网络(uMesh)结合阿里云Link ID设备身份认证平台为物联网嵌入式设备提供了自主安全认证授权接入无线mesh网络的解决方案,并且兼容IEEE802.1X端口控制访问协议和EAP(RFC3748)扩展认证…

屡试不爽的互联网架构三大马车!

戳蓝字“CSDN云计算”关注我们哦!作者:朱晔来源:https://www.cnblogs.com/lovecindywang/p/9617542.html这里所说的三架马车是指微服务、消息队列和定时任务。如下图所示,这里是一个三驾马车共同驱动的一个立体的互联网项目的架构…

如何像阿里巴巴一样高效跨企业项目协作

摘要: 在云效Work Like Alibaba第五期直播中,阿里巴巴研发协同平台高级技术专家,云效项目协作域的技术负责人余鹏(花名秉承)带来了《如何像阿里巴巴一样高效跨企业项目协作》的精彩分享。本次分享主要介绍阿里巴巴是如…

Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist

跟着官方Demo学flowable6.4.1,在内存里建表没问题,移到数据库建表就报错 请教了大神才知道,是因为之前本机上建过相同的表(Mysql8.0以上版本改成了false),解决办法就是设置默认在本数据库建表&#xff0c…

MaxCompute - ODPS重装上阵 第一弹 - 善用MaxCompute编译器的错误和警告

摘要: MaxCompute (ODPS) ( 注1 )是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 ODPS2.0除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高广…

双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘

摘要: 摘要:2017年12月20日在北京云栖大会上,阿里云高级技术专家梵叶在计算与网络分论坛上做了主题分享《双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘》。为大家介绍了洛神系统的发展过程,系统架构&#xff…

Springboot-Flowable 快速开发工作流

文章目录一、什么是flowable?官方文档:二、技术选型三、Flowable与springBoot项目整合3.1. 添加依赖3.2. yml 文件配置3.3. 创建数据库3.4. 定义流程文件3.5. 测试controller3.6. 图片乱码处理四、启动项目,初始化表结构五、测试验证5.1. 创建…

华为发布智简全光网战略,携手上下游重新定义光产业

[中国,北京,2019年7月15日] 今日,华为正式发布智简全光网战略,通过打造智能、极简、超宽、无处不在的下一代全光网络,为每个人、每个家庭、每个组织带来极致的业务体验。基于该战略,未来5年华为将携手上下游…

测试之道--阿里巴巴八年测试专家倾情奉献

摘要: 我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里,有人质疑,也有人追捧,唇…

AliOS Things蓝牙协议栈及应用开发框架介绍

摘要: AliOS Things从1.2.0版本开始支持蓝牙协议栈(BLE),及基于蓝牙协议栈的应用层开发框架。本文分为三部分对蓝牙组件进行介绍:蓝牙组件,蓝牙协议栈介绍及接口说明,和应用开发框架介绍及示例说明。AliOS Things v1.2…

快速开发工作流_01_简单流程案例

文章目录一、介绍二、技术选型三、登录/绘制流程图3.1. 需要先登录3.2. 绘制流程图四、 使用说明4.1. 选择数据库4.2. 增加 mybatis, modeler,idm 等配置4.3. yml 文件配置五、定义流程文件这样当此框架启动的时候它会默认加载resource目录下的processes时就可以将此流程配置加…

Spark精华问答 | Spark和Hadoop的架构区别解读

总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面。1Q:Spark和Hadoop的架构区别A&#x…

7类合作伙伴,190条沟通路径,高德汽车如何实现组织高效沟通?

摘要: 通常协同开发组织或团队大于等于7,关键干系人大于等于10,组织级沟通路径大于等于21条,关键干系人沟通路径大于等于45条,并以较大角系数递增。这种沟通路径曲线下,如何让组织信息快速传递?…

MaxCompute - ODPS重装上阵 第二弹 - 新的基本数据类型与内建函数

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力…