MySQL面试题 | 10.精选MySQL面试题

发布时间:2024年01月16日

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

如何使用 GROUP BY 子句和聚合函数?

在 MySQL 中,GROUP BY子句用于按照一个或多个列对结果集进行分组,然后可以使用聚合函数对每个组的数据进行聚合计算。

以下是使用GROUP BY子句和聚合函数的一般语法:

SELECT column1, aggregate_function(column2)
FROM table
GROUP BY column1;

在上述语法中,column1是用于分组的列名,可以指定一个或多个列。aggregate_function是一个聚合函数,用于对分组的数据进行计算。

以下是一些常见的聚合函数:

  1. COUNT()函数:用于计算指定列的行数。
  2. SUM()函数:用于计算指定列的总和。
  3. AVG()函数:用于计算指定列的平均值。
  4. MAX()函数:用于找出指定列的最大值。
  5. MIN()函数:用于找出指定列的最小值。

例如,假设有一个orders表包含了订单信息,包括order_idcustomer_idorder_amount列。要按照customer_id列进行分组,并计算每个客户的订单总数量,可以使用以下查询:

SELECT customer_id, SUM(order_amount) AS total_amount
FROM orders
GROUP BY customer_id;

这将返回每个客户的customer_id和对应的订单总数量。

请根据实际需求选择适当的列和聚合函数来进行分组和计算。

在上述查询中,如果我想按order_id列进行分组,应该如何修改查询语句?

如果你想按照order_id列进行分组,并计算每个订单的总数量,可以使用以下查询语句:

SELECT order_id, SUM(order_amount) AS total_amount
FROM orders
GROUP BY order_id;

在这个修改后的查询中,我们将GROUP BY子句中的列名改为order_id,这样查询结果将会按照order_id进行分组,并使用SUM函数计算每个订单的总数量。

常见的聚合函数代码案例

在 MySQL 中,上述提到的部分聚合函数代码案例如下:

  • AVG函数:用于计算指定列的平均值。
    SELECT avg(score) as '平均分' FROM class_score WHERE `subject` = '数学';
    
  • COUNT函数:用于计算符合指定条件的行数,或计算指定列的非空值数量。
    SELECT count(DISTINCT code) as '学生人数' FROM class_score;
    
  • MAX函数:用于找出指定列的最大值。
    SELECT max(score) as '最高分' FROM class_score WHERE `name` = '张山';
    
  • MIN函数:用于找出指定列的最小值。
    SELECT min(score) as '最低分' FROM class_score WHERE `name` = '张山';
    
  • SUM函数:用于计算指定列的总和。
    SELECT sum(score) as '总分' FROM class_score WHERE `name` = '张山';
    

请注意,实际使用中需将表class_score替换为实际的表名,将列subjectcodescore替换为实际的列名,将条件name = '张山’替换为实际的条件。

在 MySQL 中,NULL 和空字符串有什么区别?

在 MySQL 中,NULL和空字符串('')是两个不同的概念。

  • NULL值表示没有值、缺失值或未知值。它用于表示某个列或变量中没有明确的值。当一个列或变量被设置为NULL时,它不表示任何具体的内容。

  • 空字符串是一个包含零个字符的字符串。它与NULL不同,空字符串是一个明确的字符串值,只是它不包含任何字符。

在进行比较或操作时,NULL和空字符串的处理方式也不同:

  • 当比较一个列或变量与NULL值时,结果通常为不确定(除非使用了特殊的比较运算符,如IS NULLIS NOT NULL)。

  • 当比较一个列或变量与空字符串时,通常会将它们视为不同的值。

在数据库设计和编程中,了解NULL和空字符串的区别非常重要,因为它们在查询、连接和其他操作中可能会产生不同的结果。根据具体的需求,你可以选择将列设置为允许NULL值或限制为空字符串。

文章来源:https://blog.csdn.net/m0_49768044/article/details/135581961
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。