产品经理该懂的技术(SQL基础)

产品经理该懂的技术(SQL基础)

xuliyaoPro 过期程序员

img

产品经理不仅要有敏锐的市场洞察力,作为一个项目内部或外部的桥梁和翻译官,必须得懂些技术语言及实现原理,以便更好地与开发团队沟通,推动产品的技术实现和项目顺利落地。

掌握SQL基础不仅是技能上的加分项,更是与技术团队沟通、深入理解用户行为、驱动产品优化的必备工具。通过SQL,你能够直接与数据对话,提取洞察,从而做出更加精准的产品策略。

产品经理遇到的困惑场景:

  • 场景1:想要分析用户行为数据,但不知道如何从数据库中提取和分析这些数据
  • 场景2:需要基于数据做出产品决策,但不懂SQL,无法快速验证假设或测试不同的数据集
  • 场景3:与开发或数据分析师沟通时,但不懂SQL,难以准确表达数据需求

1、什么是SQL?

SQL 全名 Structured Query Language, 结构化查询语言,也就是一种关系式数据库(Relational Database)的标准查询语言,可以通过此语法对数据库系统进新增、编辑、删除及查询等动作。

简单类比理解,一个Excel文件就是数据库,Sheet就每个数据表,行(数据)与列(字段)就组成了表结构数据。

img

SQL语法分类:

DDL - 数据定义语言 :

数据定义语言全称是Data Definition Language,定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、索引、视图、函数、存储过程和触发器等等。

命令 描述
CREATE 创建一个新的表,表的视图,或者在数据库中的对象
ALTER 修改现有的数据库对象,例如一个表
DROP 删除整个表,数据库中的表或其他对象或视图

DML - 数据操纵语言:

数据操纵语言全程是Data Manipulation Language,主要进行插入数据、修改数据、删除数据的操作。

命令 描述
INSERT 创建记录(程序员口中的“增”)
DELETE 删除记录(程序员口中的“删”)
UPDATE 修改记录(程序员口中的“改”)

DQL - 数据查询语言:

数据查询语言全称是Data Query Language,是用来进行数据库中数据的查询的,即最常用的select语句。

命令 描述
SELECT 从一个或多个表中查询记录(程序员口中的“查”)

DCL - 数据控制语言:

数据控制语言全称是Data Control Language,用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。比如常见的授权、取消授权、回滚、提交等等操作。

命令 描述
GRANT 赋予用户或角色某种权限
DENY 用于拒绝用户或角色的某种权限
REVOKE 用户撤销用户或角色的某种权限

2、SQL语法基础

SQL 语句通常以分号(;)结尾,并且不区分大小写,但习惯上关键词大写,以提高可读性。

1
2
3
4
5
6
7
8
9
10
--创建表
CREATE TABLE <表名> (字段名 类型) ;
--增加数据
INSERT INTO <表名> <字段名> VALUES (值) ;
--删除数据
DELETE FROM <表名> WHERE (筛选条件);
--改数据
UPDATE <表名> SET <字段名=> WHERE (筛选条件);
--查数据
SELECT <字段名> FROM <表名> WHERE (筛选条件);

3、SQL示例

1
2
3
4
5
6
7
8
9
10
--创建表(Users):包含四个列:Id、Name、Address 和 City。每个列的数据类型在括号中进行了定义,例如 Id 被定义为 int 类型,Name、Address 和 City 被定义为 varchar(255) 类型,意味着它们可以存储最大长度为 255 个字符的字符串。
CREATE TABLE Users (Id int, Name varchar(255), Address varchar(255), City varchar(255) );

--新增数据:用于向名为 Users 的表中插入3条新的记录
INSERT INTO Users VALUES (1, 'Xu DaDa', '东方明珠塔1号', 'Shanghai');
INSERT INTO Users VALUES (2, 'Wang Ying', '徐家汇广场2号', 'Shanghai');
INSERT INTO Users VALUES (3, 'Xu Xiaoming', '天安门城楼3号', 'Beijing');

--查询数据:用于名为 Users 的数据库表中查询所有字段(*表示所有字段),但仅限于那些City字段值为Shanghai的记录,并且将查询结果按照Id字段的值降序排列,查询结果为2条记录。
SELECT * FROM Users WHERE City='Shanghai' ORDER BY Id DESC;

img

3、SQL 执行顺序

我们要知道一点:SQL语句的书写顺序与执行顺序是不同的。书写时,我们通常按照SELECTFROMWHEREGROUP BYHAVINGORDER BY这样的顺序来组织查询,但实际上,SQL引擎在执行这些操作时,会遵循一个完全不同的逻辑顺序。

实际的执行顺序

  1. FROM:首先,SQL引擎会从FROM子句中指定的表中读取数据。这一步是整个查询的基础,因为没有数据,后续的所有操作都无法进行。
  2. WHERE:接下来,SQL引擎会根据WHERE子句中的条件对数据进行过滤。这一步的目的是减少需要处理的数据量,提高查询效率。
  3. GROUP BY:如果查询中包含了GROUP BY子句,SQL引擎会将过滤后的数据按照指定的列进行分组。这一步骤对于聚合函数(如SUM、AVG、COUNT等)的计算至关重要。
  4. HAVINGHAVING子句用于对分组后的结果进行过滤。与WHERE不同的是,HAVING可以引用聚合函数的结果。
  5. SELECT:到了这一步,SQL引擎才会根据SELECT子句中的列名或表达式,从前面步骤处理过的数据中选取最终的输出结果。
  6. DISTINCT:如果SELECT子句中有DISTINCT关键字,SQL引擎会去除重复的行,只保留唯一的记录。
  7. ORDER BY:最后,SQL引擎会根据ORDER BY子句中的列名或表达式对结果进行排序。这一步是可选的,但如果存在,它总是在查询的最后阶段执行。

4、SQL 在线练习工具

SQLZoo

https://sqlzoo.net/wiki/SELECT_basics/zh

SQLZoo,是Andrew Cumming基于MediaWiki开发的免费在线SQL训练网站。 它提供了复杂程度不等的一系列SQL问题,用户可以自行提交解答并实时获得正误反馈。

SQL Fiddle

SQL Fiddle,是一个在线SQL编译器,可让您编写、编辑和执行任何SQL语句的工具,不用安装各类SQL数据库环境,不用安装数据管理工具,主打方便,小白上手容易练习使用。

https://sqlfiddle.com/

  • 标题: 产品经理该懂的技术(SQL基础)
  • 作者: xuliyaoPro
  • 创建于 : 2024-12-18 00:00:00
  • 更新于 : 2024-12-18 00:00:00
  • 链接: https://chinapmcc.com/2024/12/18/1.定义与规划/1.1基础认知与职业启航/产品经理该懂系列/产品经理该懂的技术(SQL基础)/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论