0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据分析SQL内容的知识分享

冬至子 来源:韭菜新知 作者:韭菜新知 2023-05-26 14:49 次阅读

0****1

查询所有列

SELECT * 或SELECT 所有列,并不是说 * 任何情况都不建议用,很多时候查询不涉及大量,节约效率,可以用。

SELECT * FROM table;

0****2

DISTINCT

用DISTINCT关键字可以去掉结果中的重复行。DISTINCT关键字放在SELECT词的后边、目标列名序列的前边。

SELECT DISTINCT column1, column2 FROM table;

0****3

LIMIT

LIMIT 语法的一般形式为:

SELECT column1, column2, ... FROM table_name LIMIT [offset,] row_count;

其中,row_count 指定从偏移量 offset 开始要返回多少行记录。如果不指定 offset,则默认从第一行开始返回。offset 和 row_count 都是非负整数。

例如,下面的 SQL 查询语句将从 customers 表中返回前 10 行数据:

SELECT * FROM customers LIMIT 10;

如果要跳过前 n 行,可以使用 OFFSET 子句来指定偏移量。例如,下面的 SQL 查询语句将从 customers 表中返回第 11 到 20 行的数据:

SELECT * FROM customers LIMIT 10 OFFSET 10;

0****4

WHERE

在 SQL 中,WHERE 是一个可选的关键字,用于限制 SELECT 查询结果中返回的记录行数。WHERE 语句的一般形式为:

SELECT column1, column2, ... FROM table_name WHERE condition;

其中,condition 为限制条件,可以是列与值之间的比较、逻辑运算符(AND、OR、NOT)、IN 子句等。

例如,下面的 SQL 查询语句将从 customers 表中返回 age 列大于 25 的记录:

SELECT * FROM customers WHERE age > 25;

需要注意的是,在使用 WHERE 语句时,应该注意以下几个事项:

  • WHERE 关键字必须紧接着 SELECT 关键字后面。
  • WHERE 子句中的条件表达式可以使用比较运算符(=、<、>、<=、>=、<>)、模糊匹配运算符(LIKE、NOT LIKE)、范围运算符(BETWEEN、NOT BETWEEN)、空值运算符(IS NULL、IS NOT NULL)等。
  • 多个条件之间可以使用 AND、OR、NOT 连接。
  • 在使用字符串类型的条件表达式时,应该注意引号的使用。

0****5

ORDER BY

ORDER BY 是一个用于排序查询结果的关键字。具体来说,ORDER BY 可以按照一个或多个列对查询结果进行升序或降序排列。

使用 ORDER BY 语法可以这样:

SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

其中,column1、column2 等为要排序的列名,ASC(升序)和 DESC(降序)分别表示排序顺序。如果省略 ASC 或 DESC,则默认是 ASC 升序排序。

例如,下面的 SQL 查询语句将按照 age 列的升序顺序对 customers 表进行排序:

SELECT * FROM customers ORDER BY age ASC;

需要注意的是,当使用 ORDER BY 语句时,应该注意以下几个事项:

  • 当 ORDER BY 子句中指定多个列时,排序优先级按照列名出现的顺序依次递减,即先按第一个列排序,然后再按第二个列排序,以此类推。
  • 如果列中包含 NULL 值,则它们会被放置在排序结果的最前面(升序)或最后面(降序)。
  • 对大型数据集进行排序操作可能会影响性能,请谨慎使用。
  • 在一些数据库系统中,可以使用列的表达式作为排序条件,但需要确保表达式的结果类型为可比较类型。

0****6

聚合函数

在 SQL 中,聚合函数是用于对表格数据进行统计和计算的函数。常见的聚合函数包括 COUNT、SUM、AVG、MAX 和 MIN 等。

以下是几种常见的聚合函数及其作用:

  • COUNT:用于统计满足条件的行数,可以统计整个表或者某一列中满足条件的行数。
  • SUM:用于求和,可以对整个表或者某一列中的数字值进行求和。
  • AVG:用于求平均数,可以对整个表或者某一列中的数字值进行平均值计算。
  • MAX:用于求最大值,可以对整个表或者某一列中的数字值进行最大值计算。
  • MIN:用于求最小值,可以对整个表或者某一列中的数字值进行最小值计算。

使用聚合函数时,需要注意以下几个问题:

  • 聚合函数只能应用于列而非行,因此不能在 WHERE 语句中使用聚合函数。
  • 如果需要对多个列进行聚合计算,则需要使用 GROUP BY 子句分组,以便确定每个计算结果相应的数据子集。
  • 在使用 COUNT 函数时,需要注意空值的处理问题。COUNT 函数默认不会统计空值,如果需要统计空值则需要使用 COUNT(*) 函数。

07

GROUP BY

在 SQL 中,GROUP BY 是一个用于分组查询结果的关键字。具体来说,GROUP BY 可以将查询结果按照一个或多个列进行分组,并对每个组进行聚合计算。

以下是 GROUP BY 语法的一般形式:

SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column1, column2, ...;

其中,column1、column2 等为要分组的列名,aggregate_function 表示要进行聚合计算的函数(例如 SUM、COUNT、AVG、MAX、MIN 等),column_name 则表示要进行聚合计算的列名。

例如,下面的 SQL 查询语句将根据 gender 列对 customers 表进行分组,并计算每个组中 age 列的平均值:SELECT gender, AVG(age) FROM customers GROUP BY gender;

需要注意的是,在使用 GROUP BY 时,有以下几个问题需要注意:

  • GROUP BY 子句必须位于 WHERE 子句之后、HAVING 子句之前。
  • GROUP BY 子句中的列名必须是 SELECT 语句中出现的列名或者其别名。
  • 如果查询结果中包含非聚合列,则 GROUP BY 子句中也必须包含这些列名。
  • 在使用 GROUP BY 时,应该注意空值的处理问题。如果存在 NULL 值,它们将作为一个单独的组进行处理,因此需要谨慎处理。

08

HAVING

在 SQL 中,HAVING 是一个关键字,用于过滤 GROUP BY 分组后的查询结果,只保留满足条件的分组。

以下是 HAVING 语法的一般形式:

SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column1, column2, ... HAVING condition;

其中,column1、column2 等为要分组的列名,aggregate_function 表示要进行聚合计算的函数(例如 SUM、COUNT、AVG、MAX、MIN 等),condition 则表示过滤条件。

例如,下面的 SQL 查询语句将根据 gender 列对 customers 表进行分组,并计算每个组中 age 列的平均值,然后仅返回平均年龄大于 30 的记录:

SELECT gender, AVG(age) AS avg_age FROM customers GROUP BY gender HAVING avg_age > 30;

需要注意的是,在使用 HAVING 时,有以下几个问题需要注意:

  • HAVING 子句必须位于 GROUP BY 子句之后。
  • HAVING 子句中的条件表达式可以使用比较运算符(=、<、>、<=、>=、<>)、逻辑运算符(AND、OR、NOT)等。
  • 在使用 HAVING 时,也可以使用聚合函数来过滤分组。例如,可以使用 COUNT(*) 函数来过滤出满足某个条件的分组数量。

09

多表连接

在 SQL 中,多表链接是一种用于联合多个表格中数据的技术。常见的多表链接类型包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL OUTER JOIN 等。

以下是几种常见的多表链接类型及其作用:

  • INNER JOIN(JOIN):内连接,只返回两个表格中都存在对应数据的行。
  • LEFT JOIN:左连接,返回左侧表格中所有行以及与之匹配的右侧表格行。
  • RIGHT JOIN:右连接,返回右侧表格中所有行以及与之匹配的左侧表格行。
  • FULL OUTER JOIN:全外连接,返回左右两侧表格中所有行,如果某个表格中没有对应的匹配行,则使用 NULL 补齐。

以下是 INNER JOIN 的语法示例:

SELECT column1, column2, ..., columnN FROM table_name1 INNER JOIN table_name2 ON condition;

其中,table_name1 和 table_name2 分别表示要联合的两个表格,condition 是两个表格之间的关联条件。

例如,下面的 SQL 查询语句将 customers 表格和 orders 表格联合起来,返回所有购买了产品编号为 1 的商品的客户信息和订单信息:

SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id WHERE orders.product_id = 1;

需要注意的是,在使用多表链接时,应该注意以下几个问题:

  • 多表链接需要至少一个关联条件,否则可能会产生笛卡尔积和重复的行。
  • 在使用 LEFT JOIN 或 RIGHT JOIN 时,需要注意空值的处理问题。如果两个表格中存在 NULL 值,则需要进行特殊处理以免产生错误的匹配结果。
  • 多表链接可能会导致性能问题,特别是在处理大型数据时。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43462
  • avg
    avg
    +关注

    关注

    0

    文章

    11

    浏览量

    4051
收藏 人收藏

    评论

    相关推荐

    数据分析

    数据分析软件
    发表于 05-28 22:31

    数据分析需要的技能

    数据分析人员要具备对数据库的操作能力,来实现数据的读取、修改、删除和更新等功能,常用的数据存储数据
    发表于 04-10 15:59

    怎么有效学习Python数据分析

    Python在人工智能、机器学习领域受到火热追捧,很大程度上在于它拥有非常庞大的第三方库,以及强大的通用编程性能。因此,快速掌握Python进行数据分析,就是学习Python各种第三方库、工具包
    发表于 06-28 15:18

    BI分享秀——高度开放的数据分析经验共享

    由于以前的数据分析软件并没有一个开放性的分析经验共享板块,因此很多的用户基本上都是在闭门造车,延续自己的分析思维。因此一旦遇到新的分析内容
    发表于 05-12 14:23

    怎么做自己做得快、老板看得开心的数据分析报表?

    本月公司支出费用上涨,只需双击就能层层钻取,将与之相关的所有数据起底式钻取出来,精确到部门乃至个人。 SpeedBI数据分析云制作的数据分析报表虽然有一个预设的分析
    发表于 06-19 17:21

    数据量大、分析急,该用什么软件做数据分析

    数据量大,现在的软件分析效率太低,操作也麻烦,有没有更适合的数据分析软件?或许BI数据分析软件会是个好选择。奥威软件旗下的OurwayBI就是一款专做大
    发表于 12-29 11:33

    BI数据分析软件使用指南

    BI数据分析软件做数据深度分析又快又直观,还能灵活满足不同人的数据分析需求,因此选择BI数据分析软件的企业与个人也越来越多,但却仍有很大一部
    发表于 01-04 11:00

    成为Python数据分析师,需要掌握哪些技能

    ,可以说数据分析师的就业前景十分广阔了。好的数据分析师一个月不止16000+。现在,数据分析才是风口。一、数据分析师需要具备的技能熟悉Excel数据
    发表于 06-23 12:16

    成为Python数据分析师,需要掌握哪些技能

    ,可以说数据分析师的就业前景十分广阔了。好的数据分析师一个月不止16000+。现在,数据分析才是风口。一、数据分析师需要具备的技能熟悉Excel数据
    发表于 06-30 11:42

    电商数据分析攻略,让你轻松搞定数据分析

    在当今的数字经济时代,运用大数据分析来促进业务增长已然成为一种普遍行为,拥有一套系统化的数据分析方案尤为重要。奥威BI电商数据分析方案是一种基于数据挖掘和机器学习技术的解决方案,以丰富
    发表于 06-27 09:22

    Get职场新知识:做分析,用大数据分析工具

    为什么企业每天累积那么多的数据,也做数据分析,但最后决策还是靠经验?很大程度上是因为这些数据都被以不同的指标和存储方式放在各自的系统中,这就导致了数据
    发表于 12-05 09:36

    实例详解对Serverless SQL数据分析技术的应用

    近年来, Serverless作为一种新型的互联网架构直接或间接推动了云计算的发展,同时基于Serverless的轻量计算也成为了新的技术热点,而Serverless SQL数据分析产品就在此背景下应运而生。
    的头像 发表于 07-26 10:54 3991次阅读
    实例详解对Serverless <b class='flag-5'>SQL</b>大<b class='flag-5'>数据分析</b>技术的应用

    数据分析修炼手册教程免费下载

    本文档的主要内容详细介绍的是数据分析修炼手册教程免费下载包括了:前言,数据分析师如何分类? ,数据分析师的具体工作职责和工作内容有哪些?,如
    发表于 10-08 08:00 1次下载
    <b class='flag-5'>数据分析</b>修炼手册教程免费下载

    数据分析有哪些工具

    一、入门数据分析 1、Excel 比如if函数、sum函数、甚至vlookup函数;还有数据透视表和一些常用的数据分析方法。 2、SQL 可以用于存取
    的头像 发表于 01-22 15:53 6164次阅读

    数据公司数据分析取数流程以及SQL示例

    有效的数据分析,首先需要从庞大的数据库中获取所需的数据,这就涉及到SQL取数的技巧。
    的头像 发表于 06-05 17:28 504次阅读