首页
学习
活动
专区
圈层
工具
发布

2019Java面试宝典数据库篇 -- MySQL

SQL 语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。但在 SQL 语句中,第一个被处理的子句是 FROM,而不是第一出现的 SELECT。...计算 max() 聚集函数, 按 "总成绩" 求出总成绩中最大的一些数值。    (5). 执行 HAVING 子句, 筛选课程的总成绩大于 600 分的。    (7)....二、SQL 之聚合函数 聚合函数是对一组值进行计算并返回单一的值的函数,它经常与 select 语句中的 group by 子句一同使用。 avg():返回的是指定组中的平均值,空值被忽略。...count():返回的是指定组中的项目个数。 max():返回指定数据中的最大值。 min():返回指定数据中的最小值。 sum():返回指定数据的和,只能用于数字列,空值忽略。...group by():对数据进行分组,对执行完 group by 之后的组进行聚合函数的运算,计算每一组的值。

2.5K20

第二十七天 数据库基础&JDBC使用&工具类Properties&连接池&DBUtils【悟空教程】

1.1.6 SQL语句 数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。...创建数据库、创建数据表、向数据表中添加一条条数据信息均需要使用SQL语句。...在Query窗口中,输入SQL代码,选中要执行的SQL代码,按F8键运行,或按执行按钮运行。...0; max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算; min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算; avg:计算指定列的平均值,如果指定列类型不是数值类型...计算的字段>20 group by 分组的字段 having avg(计算的字段)>20; 逻辑:先确定where语句 然后在确定having语句 2.having后面可以使用分组函数(统计函数

91420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 怎么用索引实现 group by?

    引言 使用索引实现 group by,最简单的方式,大概就是这样了: 存储引擎按顺序一条一条读取记录,返回给 server 层。 server 层判断记录是否符合 where 条件。...紧凑索引扫描会对满足 where 条件的所有记录进行聚合函数处理,而对于 min()、max() 来说,实际需要的只有每个分组中聚合函数字段值最小或最大的那条记录。...如果当前记录的分组前缀(示例 SQL 中 group by 的 e1 字段值)和上一条记录的分组前缀不一样,说明需要结束上一个分组,并开启新分组。...如果当前记录的分组前缀和上一条记录的分组前缀一样,说明还是同一个分组,只需要进行分组求和、分组计数,不需要计算平均值。...紧凑索引扫描,存储引擎按顺序一条一条读取记录,返回给 server 层,server 层判断记录是否符合 where 条件,然后对符合条件的记录进行聚合函数逻辑处理。

    7.8K60

    MySQL 怎么用索引实现 group by?

    引言 使用索引实现 group by,最简单的方式,大概就是这样了: 存储引擎按顺序一条一条读取记录,返回给 server 层。 server 层判断记录是否符合 where 条件。...紧凑索引扫描会对满足 where 条件的所有记录进行聚合函数处理,而对于 min()、max() 来说,实际需要的只有每个分组中聚合函数字段值最小或最大的那条记录。...如果当前记录的分组前缀(示例 SQL 中 group by 的 e1 字段值)和上一条记录的分组前缀不一样,说明需要结束上一个分组,并开启新分组。...如果当前记录的分组前缀和上一条记录的分组前缀一样,说明还是同一个分组,只需要进行分组求和、分组计数,不需要计算平均值。...紧凑索引扫描,存储引擎按顺序一条一条读取记录,返回给 server 层,server 层判断记录是否符合 where 条件,然后对符合条件的记录进行聚合函数逻辑处理。

    5.9K20

    史上最强最常用SQL语句大全【超详细注释】

    本文将全面介绍最常用的SQL语句,覆盖数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和数据控制语言(DCL)。通过丰富的代码示例和详细注释,帮助您深入理解和灵活运用SQL。...; 计算总和 -- 计算orders表中amount列的总和 SELECT SUM(amount) FROM orders; 计算最大值和最小值 -- 计算users表中age列的最大值 SELECT...MAX(age) FROM users; -- 计算orders表中amount列的最小值 SELECT MIN(amount) FROM orders; 四、分组查询 group by 按年龄分组...-- 按age分组并统计每组的人数 SELECT age, COUNT(*) FROM users GROUP BY age; -- 按user_id分组并统计每组的总订单金额 SELECT user_id...A: 选择子查询方式应根据实际需求来定。如果只需要单行单列结果,可以使用简单子查询。如果需要多个结果,选择IN或EXISTS子查询。 小结 通过本篇文章,您应对常见的SQL语句有了更全面的了解和掌握。

    3.5K20

    互联网十万个为什么之什么是SQL

    仅需执行简单的SQL命令,可在海量数据中快速找到您所需要的数据,提升了查询性能。 支持复杂的数据计算和处理。SQL支持JOIN、子查询及多种计算函数。...执行SQL语句 数据库根据查询优化的结果,通过执行器来生成查询执行计划,即需要按什么样的顺序(数据访问路径)、采用什么样的数据库连接方式等来执行这条SQL指令。...常见的DQL类子句有SELECT。 常见的SQL子句有哪些以及该如何使用? SQL使用关键字、表名、列名等SQL语法结构组合成一条SQL语句,用来描述需要执行的指令。...否 SELECT * FROM sheet1 GROUP BY name表示对名称为“sheet1”的数据表,按相同“name”值进行分组聚合并返回该数据。...根据指定的一行或多行的值,对查询返回的数据按升序或降序排列。ORDER BY语句中可以添加ASC(升序)或DESC(降序)关键字指定排序的逻辑,如未添加,则默认为升序排序。

    60310

    巧用 CTE 公共表达式删除 MySQL 重复数据

    可以通过一个 SQL 查询来完成整个清理过程,从而有效解决这一问题。...语句可以分为两个主要部分 1)WITH子句(公共表表达式,CTE): 这部分创建了一个名为duplicates的临时结果集。...需要注意的是,这个DELETE语句的语法可能不被所有数据库系统支持。例如,在MySQL中这是有效的语法,但在其他一些数据库系统中可能需要稍作调整。...总的来说,这个查询的目的是: 找出users表中名字和邮箱相同的记录。 对于每组重复记录,保留id最大的那一条(因为是按id降序排序)。 删除其他所有重复记录。...通过 SET last_id 语句更新 last_id 的值,使其指向当前批次删除的最大 id。 从 temp_duplicates 表中删除已处理的记录,以避免重复处理。

    52310

    MySQL:DQL 数据查询语句盘点

    FROM 表名 #掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条 PS:ALL 关键字是默认的(不加DISTINCT默认ALL),返回所有的记录,与DISTINCT...条件语句中使用表达式 PS:需要避免SQL返回结果中包含".“,”*"和括号等干扰开发语言程序 ---- 三、WHERE 条件语句 1、WHERE 条件语句 用于检索数据表中符合条件的记录,搜索条件可由一个或多个逻辑表达式组成...分组的依据字段可以有多个,并依次分组 与HAVING结合使用,进行分组后的数据筛选 GROUP BY的语句顺序在WHERE后面,ORDER BY 的前面 通常在对数据使用计算统计的时候,会用到GROUP...LIMIT[m,]n 或 LIMIT n OFFSET m 限制 SELECT 返回结果的行数 m 指定第一个返回记录行的偏移量(显示的起始位置) n 指定返回记录行的最大数目(显示行数) m 不指定则偏移量为...0,从第一条开始返回前 n 条记录 在MySQL中,显示每页的行数可以使用 LIMIT (页码-1)*行数,行数 ---- 六、子查询 在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句 嵌套查询可由多个子查询组成

    2.1K20

    这几道SQL面试题都不会,别干数分啦

    下面是一个更简洁易懂的解释以及对应的SQL查询模板: 实现思路: 因为每天用户登录次数可能不止一次,所以需要先按照用户每天的登录日期去重计算。...计算登录日期减去第二步骤得到的结果值,用户连续登录情况下,每次相减的结果都相同。 按照id和日期分组并求和,筛选大于等于7的即为连续7天登录的用户。...SQL 语句查询 女朋友首次购买各类化妆品的记录。...下面是一个使用SQL查询来解决这个问题的示例: 假设你有一个名为purchases的表,其中包含以下字段: user_id: 用户的ID product_id: 产品的ID purchase_date:...执行这个查询后,你将得到一个包含每个用户及其首次购买产品ID的结果集。 三、课程成绩问题 用一条 SQL 语句查询高三8班,每门课都大于 90 分的学生清单。

    38210

    学习SQL Server这一篇就够了

    T-SQL全局变量作为函数引用。例如,@@ERROR返回执行的上一个T-SQL语句的错误号;@@CONNECTIONS返回自上次启动SQL Server以来连接或试图连接的次数。...if 条件表达式 一条SQL语句或者语句块 [else 一条SQL语句或者语句块] 案例演示:如果1=1,则查询学生表,否则查询KCB。...while 条件表达式 一条SQL语句或者语句块 案例演示:将学号为”081102″的学生的总学分使用循环修改到大于等于60,每次只加2并判断循环了多少次。...break; 8.3.6.8、return语句 语法格式:用于返回使用,可以返回一个表达式的值。...存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量sql语句的代码流量。 维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。

    7.2K30

    MySQL(五)汇总和分组数据

    ②获得表中行组的和 ③找出表列(或所有行或某些特定的行)的最大值、最小值和平均值 聚集函数(aggregate function):运行在行组上,计算和返回单个值的函数(MySQL还支持一些列的标准偏差聚集函数...) as max_price from products; 这条SQL语句中国返回products表中price列的最大值; PS:MySQL允许max()用来返回任意列中的最大值,包括返回文本列的最大值...;但用于文本数据时,如果数据按相应的列排序,则max()返回最后一行(max()函数忽略列值为null的行) 4、min()函数 min()返回指定列的最小值,min()也要求指定列名,例子如下: select...,包括返回文本列的最小值;但用于文本数据时,如果数据按相应的列排序,则min()返回最前面的行(min()函数忽略列值为null的行) 5、sum()函数 sum()函数用来返回指定列值的和(总计);例子如下...语句执行4个聚集计算,返回四个值(products表中items的数目、price的最高、最低以及平均值) PS:在指定别名以包含某个聚集函数的结果时,不应该使用表中实际的列名;这样便于使用SQL更加容易和理解

    6K20

    《SQL必知必会》万字精华-第1到13章

    笔记:我们需要注意order by子句的位置,一定要保证它是select语句的最后一条子句。...七、创建计算字段 计算字段 存储在数据库表中的字段一般不是应用程序中所需要的格式。我们需要直接从数据库中检索出来进行转换、计算或者格式化过的数据。计算字段并不实际存在于数据库表中。...计算字段是运行时在select语句内创建的。 拼接字段 将多个字段联结在一起构成单个字段。根据不同的DBMS,使用+或者||来进行联结。但是在MySQL中必须使用特殊的函数来进行操作。...函数 作用 AVG() 返回列的平均值 COUNT() 返回列的函数 MAX() 返回列的最大值 MIN() 返回列的最小值 SUM() 返回某列值之和...,但是如果COUNT()函数使用的是星号,则不会忽略 3、MAX()/MIN()函数 返回指定列中的最大值或者最小值 SELECT MAX(prod_price) AS MAX_price -- 求最大值

    8.3K01

    SQL优化一(SQL使用技巧)

    分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。 分析函数和聚合函数的不同之处是什么?...普通的聚合函数用group by分组,每个分组返回一个统计值,返回的字段名只能是分组名。...BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。...FIRST 功能描述:从DENSE_RANK返回的集合中取出排在最前面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。...LAST 功能描述:从DENSE_RANK返回的集合中取出排在最后面的一个值的行(可能多行,因为值可能相等),因此完整的语法需要在开始处加上一个集合函数以从中取出记录。

    3K40

    SQL 聚合查询

    数据以行为粒度存储,最简单的 SQL 语句是 select * from test,拿到的是整个二维表明细,但仅做到这一点远远不够,出于以下两个目的,需要 SQL 提供聚合函数: 明细数据没有统计意义,...id,而第二条查询的 id 是无意义的,因为不知道归属在哪一行,所以只返回了第一条数据的 id。...当然,如果同时计算 MAX、MIN,那么此时 id 也只返回第一条数据的值,因为这个查询结果对应了复数行: SELECT MAX(cost), MIN(cost), id FROM test -- id...分组聚合 分组聚合就是 GROUP BY,其实可以把它当作一种高级的条件语句。...总结 聚合函数 + 分组可以实现大部分简单 SQL 需求,在写 SQL 表达式时,需要思考这样的表达式是如何计算的,比如 MAX(c1), c2 是合理的,而 SUM(c1), c2 这个 c2 就是无意义的

    3.1K31

    MySQL基础及原理

    SQL语句执行顺序 SELECT 字段 From 表 WHERE 条件 其他子句; 先执行FROM语句,查询表; 再执行WHERE语句,按条件过滤字段; 再执行SELECT语句,取出需要的字段;...4、存储过程体中可以有多条 SQL 语句,如果仅仅一条SQL 语句,则可以省略 BEGIN 和 END 编写存储过程并不是一件简单的事情,可能存储过程中需要复杂的 SQL 语句。...4、函数体也可以用BEGIN…END来表示SQL代码的开始和结束。如果函数体只有一条语句,也可以省略BEGIN…END。...在进行相对复杂的数据库操作时,原本需要使用一条一条的 SQL 语句,可能要连接多次数据库才能完成的操作,现在变成了一次存储过程,只需要 连接一次即可 。 缺点: 1、可移植性差。...窗口函数的作用类似于在查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是将结果置于每一条数据记录中。

    4.6K20

    SQL必知必会总结

    笔记:我们需要注意order by子句的位置,一定要保证它是select语句的最后一条子句。...九、汇总数据 聚集函数 聚集函数指的是对某些行运行的一个函数,并且返回一个值,常用的聚集函数有: 函数 作用 AVG() 返回列的平均值 COUNT() 返回列的函数 MAX() 返回列的最大值 MIN...存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。...利用事务处理,可以保证一组操作不会中途停止,要么完全执行,要么完全不执行,来维护数据库的完整性。 在MySQL中,一条SQL语句就是一个事务。...SQL语句 close():关闭连接 游标对象cur操作方法 名称 描述 close 关闭游标 execute 执行一条SQL语句,可以带上参数; 执行之后需要conn.commit(),数据库中才会真正建立

    10.3K30

    《SQL必知必会》万字浓缩精华

    笔记:我们需要注意order by子句的位置,一定要保证它是select语句的最后一条子句。...,但是如果COUNT()函数使用的是星号,则不会忽略 3、MAX()/MIN()函数 返回指定列中的最大值或者最小值 SELECT MAX(prod_price) AS MAX_price -- 求最大值...存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。...利用事务处理,可以保证一组操作不会中途停止,要么完全执行,要么完全不执行,来维护数据库的完整性。 在MySQL中,一条SQL语句就是一个事务。...SQL语句 close():关闭连接 游标对象cur操作方法 名称 描述 close 关闭游标 execute 执行一条SQL语句,可以带上参数;执行之后需要conn.commit(),数据库中才会真正建立

    8.5K31

    两万字图文 SQL 零基础入门,不怕你学不会,就怕你不收藏!❤️

    我们消费的每一笔支付记录,收集的每一条用户信息,发出去的每一条消息,都会使用数据库或与其相关的产品来存储,而操纵数据库的语言正是 SQL !...学习 SQL 的作用 SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。...AVG – 平均值 AVG 函数返回数值列的平均值。NULL 值不包括在计算中。 语法: SELECT AVG(列名) FROM 表名; 实例: 计算 “orderno” 字段的平均值。...MAX – 最大值 MAX 函数返回一列中的最大值。NULL 值不包括在计算中。...MIN – 最小值 MIN 函数返回一列中的最小值。NULL 值不包括在计算中。

    10.2K11

    MySQL 查询专题

    ❑ IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。 ❑ IN WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。...❑ 如果分组列中包含具有 NULL 值的行,则 NULL 将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。...这可能会改变计算值,从而影响 HAVING 子句中基于这些值过滤掉的分组。...你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。 你可以设定多个字段来排序。 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。...在指定一条 ORDER BY 子句时,应该保证它是SELECT语句中最后一条子句,否则这将报错 不限制是否使用非选择列进行排序 除了能用列名指出排序顺序外,ORDER BY 还支持按相对列位置进行排序,

    6.8K30
    领券