热线电话:13121318867

登录
首页大数据时代从数据仓库到智能取数:CDA数据分析师视角下的数据库相关概念
从数据仓库到智能取数:CDA数据分析师视角下的数据库相关概念
2026-04-27
收藏

很多数据分析师精通Excel函数和数据透视表,但当被问到“数据从哪里来”“表和视图有什么区别”“数据库管理系统和SQL是什么关系”时,却常常答不上来。在企业的真实工作场景中,数据从来不是从天而降的Excel文件,而是存储在各类数据库中的结构化信息。掌握数据库的核心概念,是数据分析师从“会处理数据”走向“会获取数据”的关键一步。

引言:为什么“读懂数据库”是数据分析师的第一关?

小林入职了一家互联网公司的数据分析团队。第一天,主管让他“提取近三个月电商业务数据库中的订单明细数据”。小林打开数据库工具,面对那一排排陌生的表名和字段名,他发现自己“会用Excel分析数据”,却“不知道怎么把数据从数据库里弄出来”。经过半小时的手忙脚乱,他终于导出了一张Excel表,打开一看:订单金额是负数,日期格式乱七八糟,还缺了关键的“商品类别”字段。主管看了一眼,皱起了眉头——这不是小林第一次在这个问题上“栽跟头”了。

这不是小林的错,而是大多数数据新人的共同困境——数据分析技能和数据库基础知识之间存在断层。在企业环境中,数据资产几乎都沉淀在数据库中,而非现成的Excel文件。数据分析师日常工作面临的两个基础挑战,都与数据库知识息息相关:数据怎么取以及数据怎么用

一、数据库的核心认知:CDA视角下的数据“仓库”

数据库(Database)的本质是“按一定结构组织、存储和管理数据的系统”。数据库是整个企业数据资产的“大本营”,也是CDA分析师工作的“起点”。

概括来说,数据库,就是你的各种业务数据的“大仓库” 。在实际工作中,最常用的几类数据库包括:

  • 关系型数据库:是企业最主流的数据组织形式,以的形式存储和管理数据,所有数据由清晰的字段记录构成,数据之间存在明确的关系,代表产品是MySQL、Oracle、SQL Server、PostgreSQL等。
  • 关系型数据库(NoSQL :在处理大规模、非结构化、高并发等特定场景中优势显著。此类数据库主要应对海量非结构数据,例如键值型、文档型数据库等。

(一)数据的组织逻辑:数据库与数据表

数据库(Database)是存储数据的“大仓库”,而数据表(Table)则是仓库中分类存放数据的“货架”。它们是“整体与局部”的关系。

数据库通常按业务线划分,如“电商业务数据库”“金融信贷数据库”,以避免数据混乱。分析师在工作中,首先需明确分析目标对应的数据库——比如分析电商用户满意度,就需进入“电商业务数据库”。在电商数据库中,会包含“用户表”(存储用户信息)、“订单表”(存储订单数据)、“商品表”(存储商品信息)、“物流表”(存储配送数据)等多个表格,每个表都围绕一个业务对象设计。

(二)字段、记录与主键:数据的最基本单位

数据表由字段和记录组成,这是分析师接触数据的“最小颗粒度”。

概念 定义解析 CDA实操价值
字段 数据表的列,代表数据的属性,如订单表的“订单ID”“订单金额” 指标计算的基础,如“客单价”需提取“订单金额”字段计算
记录 数据表的行,代表一条完整的业务数据,如一条订单记录 数据筛选的对象,如筛选“2024年1月下单的订单记录”
主键 数据表中唯一标识一条记录的字段,如“订单ID” 关联多表数据的“桥梁”,如通过“用户ID”关联用户表和订单表

理解主键的作用是至关重要的。在企业级数据模型中,主键是确保数据准确定位、多表间数据“不混淆”的依据。每当分析师需要分解“用户画像”或计算“复购率”时,都需要依赖主键将多个表进行横向关联。

二、核心对象详解:表与视图

企业的业务数据以“表”的形式保存,但日常分析中还有一个高频衍生物——视图(View)。它们都是数据库的核心对象,但与Excel打开的一张张Sheet不同,它们各有各的用法和特征

(一)数据表:固化数据的“实体容器”

数据表是数据库中用于物理存储数据的实体结构,相当于“数据档案柜”。所有原始数据或经过处理的核心数据都以表的形式持久化存储。其核心特征占用物理存储空间、数据独立存在、可直接修改数据内容

创建表的核心价值体现在三个方面:一是固化高频使用的中间数据,避免重复处理原始数据;二是规范数据结构,将杂乱的原始数据整理为符合分析需求的格式;三是实现数据共享,为团队提供统一的分析数据来源。

(二)视图:简化查询的“虚拟窗口”

视图是基于一个或多个表的查询结果构建的虚拟表,本身不存储数据,仅保存查询逻辑,相当于“数据的动态窗口”——每次访问视图时,数据库会重新执行其关联的查询逻辑,返回最新数据。视图的三大核心价值——简化复杂查询隐藏数据细节确保数据一致性——都能直接为数据分析工作提供便利。

(三)表与视图的核心差异对比

对比维度 数据表 视图 CDA选择建议
数据存储 物理存储数据,占用空间 仅存查询逻辑,不存数据 高频复用且数据稳定→表;实时性要求高→视图
数据更新 可直接增删改查 依赖源表更新,仅能通过源表修改 需修改数据→表;仅需查询→视图
查询效率 直接读取数据,效率高 每次访问需执行查询 大数据量分析→表;简单查询或实时数据→视图
使用场景 中间数据固化、数据共享 复杂查询简化、数据权限控制 长期分析项目→表;临时查询或多场景复用→视图

三、CDA与数据库的“沟通语言”:SQL

SQL(结构化查询语言) 是操作数据库的标准语言。在CDA的考试指导中,非常明确地将SQL定位为数据分析师的工具,而非普通的IT开发工具。

(一)基础查询精选:以SELECT为核心的探索

1. SELECT与FROM:指定查询范围

数据分析的第一步永远是“从哪张表中选择哪些数据”。语法为SELECT 列名1, 列名2 FROM 表名

在实际业务中,可以通过为表设置别名来简化复杂的查询。例如:SELECT o.订单金额 FROM 订单表 o。理解SQL语句的执⾏顺序(FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT)对于写出正确的复杂查询至关重要。例如,列别名是在WHERE子句执行之后才生效的,因此WHERE子句中不能直接使用列别名。

2. WHERE与DISTINCT:数据筛选与去重

  • WHERE子句用于从FROM列表中筛选行,严格遵循指定的条件进行过滤
  • DISTINCT关键字是数据分析师日常应对“重复数据”的基础操作,用于过滤查询结果中重复的行
  • 在实际使用中,会大量接触“AND”“OR”“LIKE”“IN”等多种条件过滤语句

3. GROUP BY与HAVING:分组汇总与分组筛选

GROUP BYHAVING是两个非常重要的工具:

  • GROUP BY:配合聚合函数(聚合函数SUMAVGCOUNTMAXMIN等)将数据行按某个列的值进行分组,之后可对每个组进行统计计算
  • HAVING:在数据被GROUP BY分组聚合之后,对分组聚合的结果进行筛选。这一过程在SQL中的执行顺序为:FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

???? “WHERE”与“HAVING”的区别WHERE子句在数据被聚合之前应用,用于筛选原始数据行;HAVING子句在数据被聚合之后应用,用于筛选分组后的结果。

4. 其他常用子句:ORDER BY与LIMIT

  • ORDER BY:这是输出结果前最后的“整理”动作,对查询结果按指定字段进行升序(ASC)或降序(DESC)排序,便于观察趋势或极值
  • LIMIT:限制查询结果返回的记录数,常用于取前N条或实现分页查询

重点掌握如下几种横向连接查询:

  • 内连接(INNER JOIN) :只有在两个表中都存在匹配的数据时才会返回结果。这是最常用的连接方式,对应分析需求中取“交集”的逻辑。
  • 左连接(LEFT JOIN) :保留左表全部记录,右表显示匹配内容,不匹配的记录显示为NULL。这在需要保留主表所有记录(如订单主表)的场景中非常重要。
  • 右连接(RIGHT JOIN) :与左连接逻辑类似,保留右表所有记录,延伸了其他表的字段
  • 全连接(FULL JOIN / FULL OUTER JOIN) :保留两张表的全部信息。当匹配成功时合并为一行,匹配失败时独有记录用NULL填充。FULL JOIN是能“保留被连接两表的全部信息”的连接方式
  • 交叉连接(CROSS JOIN) :也称作笛卡尔积,返回左表和右表所有可能的行组合。

除了上述横向连接,还要掌握纵向合并查询UNION ALLUNION负责将两个结果集上下堆叠(列数需相同)。二者的关键区别在于:UNION ALL合并时会保留所有行,包括重复行,因此无去重开销,速度快;UNION会对合并后的结果集执行去重操作

(二)进阶查询技术:子查询的破圈应用

子查询指在一个SELECT语句的内部嵌套另一个SELECT语句。当面对类似“找出那些下单金额大于本月平均订单金额的用户”这类复杂分析时,往往一下子需要“套两层”查询逻辑。

四、数据库、DBMS与SQL的三角关系:看清全貌

  • 数据库(DATABASE) :是实际存储数据的容器,可以将其视为各种数据实体融合的整体
  • DBMS(Database Management System,数据库管理系统) :是用于操作和管理这个容器的软件系统,例如MySQL、Oracle等
  • SQL:则是CDA分析师与DBMS“对话”的一种编程语言

简单类比:DBMS相当于Excel软件本身,SQL则像是VBA宏代码,需要使用这套通用语言去驱动DBMS读取和修改Database中的数据。

五、助力高效分析:数据库函数与应用

在实践当中,无论是数据库查询还是核对分析,函数功能都是十分重要的助推器——它不仅能提升审计应对效率,也能辅助完成数据表的创建和维护,保证数据的准确性和一致性。

  • 聚合函数:COUNT(计数)、SUM(合计)、AVG(平均值)、MIN(最小值)、MAX(最大值)是处理大规模数据的基石
  • 数值处理函数:ROUND(四舍五入)、ABS(绝对值)、CEILING/CEIL(向上取整)常用于处理金融计算和数值整理
  • 字符串函数:CONCAT(字符串连接)、SUBSTRING(字符串截取)、LENGTH(字符串长度)、REPLACE(字符串替换),可高效清洗大量文本类数据
  • 日期时间函数:NOW(当前日期时间)、DATE_ADD(日期增加)、DATEDIFF(日期差值计算)面对例如“用户最近一次下单距今的天数”这类问题至关重要

六、实战演练:从一份“电商订单需求”完成完整的数据库查询

背景

假设你是一家电商公司的CDA数据分析师,现需对“近2个月所有已支付订单”进行分析,看近期是否有值得关注的商品活跃度异常。电商数据库拥有三张表:

  • 用户表:user_id(主键)、user_name、city、reg_date
  • 订单表:order_id(主键)、user_id、order_amt、order_status、order_date
  • 商品订单明细表:order_detail_id(主键)、order_id、product_id、product_name、quantity、unit_price

任务

  1. 查询所有近2个月已支付订单的用户姓名、城市、订单金额及订单日期
  2. 按城市维度统计已支付GMV总额(ORDER_STATUS='已支付'),并筛选出GMV大于10万元的城市
  3. 创建一张视图,以便分析师后续直接查询该数据

完整操作流程

第1步:基础的多表横向连接查询(联立订单表和用户表)

SQL逻辑如下,注意使用了主键user_id作为左右两表关联的“桥梁”:

SELECT 
    u.user_name,
    u.city,
    o.order_amt,
    o.order_date
FROM 订单表 o
INNER JOIN 用户表 u ON o.user_id = u.user_id
WHERE o.order_date >= DATE_SUB(CURDATE(), INTERVAL 2 MONTH)
AND o.order_status = '已支付';

第2步:分组汇总筛选(GROUP BY + HAVING)

现实业务中存在大量项目,需要按某个维度(例如city)进行初次分组,再筛出统计值超过某一阈值的项目。以下是针对GMV的精准筛选:

SELECT 
    u.city,
    SUM(o.order_amt) AS gmv
FROM 订单表 o
INNER JOIN 用户表 u ON o.user_id = u.user_id
WHERE o.order_date >= DATE_SUB(CURDATE(), INTERVAL 2 MONTH)
AND o.order_status = '已支付'
GROUP BY u.city
HAVING gmv > 100000;

此处的SUMGROUP BY组合实现了不同城市的“订单总金额”汇总,HAVING则过滤出GMV大于10万元的城市。

第3步:创建视图——将常用复杂查询固化

考虑到上述多表连接查询在未来会频繁使用,直接创建视图是最有效的方法:

CREATE VIEW v_paid_order_gmv AS
SELECT 
    u.user_name,
    u.city,
    o.order_amt,
    o.order_date
FROM 订单表 o
INNER JOIN 用户表 u ON o.user_id = u.user_id
WHERE o.order_status = '已支付';

创建成功后,后续执行SELECT * FROM v_paid_order_gmv WHERE order_date >= DATE_SUB...,无需再重复编写JOIN逻辑。

视图的优势:视图本身不存储数据,访问时自动使用源表最新数据。它尤其适用于“按订单状态已支付”这种后续各团队都经常要使用的查询逻辑。

这就是一套完整的“多表连接 → 分组汇总 → 筛选过滤 → 视图固化”的SQL实战流程。

结尾:从“会取数据”到“懂数据库”的价值跃迁

很多数据分析师会写SELECT * FROM,但当被问到“表和视图有什么区别”“INNER JOIN和LEFT JOIN分别适用什么场景”“GROUP BY和HAVING的执行顺序是什么”时,却答不上来。

“会取数据”是完成工作的基础,“懂数据库”是体系化分析和可成长提升的阶梯

在CDA Level Ⅰ的认证体系中,数据库应用部分是连接SQL操作与实际业务分析的核心桥梁。将大量规则与技能适配以后,数据分析师才能从“懂操作”升级为“懂应用”。这部分考核贯穿数据库分类的领会、SQL基本语法和多表连接等综合应用,确保每位CDA分析师都具备从企业核心数据库中高效、准确地获取数据的基本功。

下一步行动

  1. 打开你企业的数据库,查看其表结构,理解表与表之间的关系和主外键连接
  2. 选择常用的几类SELECT加聚合函数进行分组统计,熟悉GROUP BYHAVING的执行顺序
  3. INNER JOINLEFT JOIN连接用户表和订单表,理解数据量增减逻辑

数据库是企业数据的“心脏”,SQL是CDA分析师与心脏对话的“语言”,掌握它们,你才能真正让数据为你所用。

推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !

免费加入阅读:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0

CDA学员免费下载查看报告全文:2026全球数智化人才指数报告【CDA数据科学研究院】.pdf
数据分析师资讯
更多

OK
客服在线
立即咨询
客服在线
立即咨询