您的位置 首页 java

九道门丨用于数据分析的十大必知 SQL 查询

SQL 是结构化查询语言(Structured Query Language)的缩写,是一种编程语言,有助于从 关系数据库 中进行通信、管理和检索数据。此外,它还用于执行诸如过滤数据的行和列,合并数据和其他有用的数据操作任务。

在这篇文章中,我将带你了解 10 个最重要的 SQL 语句 ,这些语句将帮助你有效地处理分析数据。

1. SELECT 和 FROM

SELECT 和 FROM 是所有 SQL 查询的主干。每个基本的SQL查询都涉及这两条语句,并且随着查询变得越来越复杂,其他语句也会添加到其中。

SELECT 通知要选择哪些列,FROM 定义要从哪个表中查询数据。

举例:在包含多个表(客户,交易,订单)的数据库中,我们希望检查“客户”表的所有列。

2. WHERE

用于数据分析的下一个常用查询是 WHERE 子句。WHERE 用于根据特定条件筛选行。它还与其他 运算符 一起使用,包括AND,OR,BETWEEN,IN和LIKE,以将多个条件组合在一起。示例:

 SELECT * 
FROM transactions 
WHERE currency="INR"
AND market_code = "Mark006";  

3. DISTINCT

使用 DISTINCT 语句,你可以在列中找到唯一的非重复(不同)值。这是对数据集中的重复值进行排序的好方法。

在下面的示例中,FROM 语句中的 sales. transaction 用于声明我们要从哪个数据库和表中查询。

 SELECT DISTINCT product_code 
FROM sales.transactions;  

4. ORDER BY

ORDER BY 可用于按特定列、按数字或字母顺序对查询结果进行排序。它可以通过两种方式排序:ASC升序,DESC降序。ASC不常用,因为它是SQL中的默认值。

以下示例显示了使用 DESC 的最新订单日期前交易记录表上的信息。

 SELECT *
FROM transactions
ORDER BY order_date DESC;  

5. GROUP BY 和 Aggregation

GROUP BY 子句有助于按相同的值对数据进行分组。它经常与聚合操作一起使用。聚合操作对返回单个值的一系列值执行各种计算。 聚合函数 的一些示例包括:

  • SUM :返回所有值的总和。
  • AVG :返回平均值。
  • MAX :返回最大值。
  • MIN :返回最小值。
  • COUNT:返回总行数。

在此示例中,我们将检查客户表中按客户类型分组的所有行的计数。

 SELECT COUNT(*)
FROM customers
GROUP BY customer_type;  

6. LIMIT

使用大型数据集时,很难遍历表中的所有行,而且可能非常耗时。LIMIT 语句通过仅显示表的前几行或要显示的行数就能帮助解决此问题。

 SELECT *
FROM markets
LIMIT 5;  

7. AS

AS 查询用于临时命名表列或表本身。需要注意的是,这不会直接更改其原始列或表中的名称。此查询的示例如下所示:

 SELECT order_id AS ID
FROM orders;  

8. % 通配符

% 通配符与 LIKE 运算符一起用于搜索列中的特定模式。LIKE 运算符用于 WHERE 子句中。

观察一下customer表,第一个查询显示以字母“S”开头的客户名称,而第二个查询显示以字母“S”结尾的客户名称。

 # Query showing customer names starting with S
SELECT *
FROM customers
WHERE customer_name LIKE 'S%';


# Query showing customer names ending with S
SELECT *
FROM customers
WHERE customer_name LIKE '%S';  

第一个查询输出(以 S 开头)

第二个查询输出(以 S 结尾)

9. JOIN

为了理解 JOIN 的概念,我们先来看看主键和外键的区别。

在关系数据库中,主键用于唯一标识表中的每一行。例如,客户表的主键是customer_id,而订单表的主键是order_id列。

另一方面, 外键 提供了两个表中的数据之间的链接。具体来说,一个表中的外键将链接到另一个表中的主键。例如,order_id列是事务表中的外键,但它是订单表中的主键。

给定主键和外键之间的关系,我们可以在这个特定场景中执行 INNER JOIN 。查看不同类型的连接及其功能:

  • INNER JOIN/JOIN:返回两个表中具有匹配值的记录。
  • LEFT JOIN:返回左表中的所有记录和右表中的匹配记录。
  • RIGHT JOIN:返回右表中的所有记录和左表中的匹配记录。
  • FULL JOIN:当左表或右表中存在 匹配项时,返回所有记录。

INNER JOIN 的示例:

 SELECT *
FROM transactions 
INNER JOIN date
ON transactions.order_date = date.date
WHERE year = '2020';  

事务表与具有匹配值的日期列上的“日期”表连接

10. UNION

UNION 子句合并来自多个 SELECT 查询的结果。但是,它必须满足以下条件:

  • UNION 中的每个 SELECT 语句必须具有相同数量的列。
  • 这些列还必须具有相似的数据类型。
  • 每个 SELECT 语句中的列也必须按相同的顺序排列。

注意!JOIN 合并两个表中的列,而 UNION 合并两个查询中的行。

举例:学生表和课外活动表

学生表

课外活动表

 SELECT student_id, student_name, grade
FROM student
UNION 
SELECT student_id, name, extracurricular
FROM afterschool;  

联合后的表格

UNION vs UNION ALL

默认情况下,UNION 运算符从结果集中删除所有重复行,而 UNION ALL 运算符在最终结果集中包括重复行。

文章来源:智云一二三科技

文章标题:九道门丨用于数据分析的十大必知 SQL 查询

文章地址:https://www.zhihuclub.com/197394.shtml

关于作者: 智云科技

热门文章

网站地图