文章目录
PM SQL查询快速入门记
既然有才又好看的产品小伙伴给机会,那我就不要脸地假装懂点SQL了
前言
SQL学习使我快乐,这不,我天天跟着这位老湿学:
老兴奋了
开个玩笑,言归正传。
此文的目标用户是产品小伙伴,日常使用SQL的主要需求应该是查询,至于增查改维护等交给DBA或开发就好。那么我们就从认识常见的工具开始,学习简单的查询语句来逐渐了解熟悉SQL。至于一些用于定义数据库、表、增改的语句,时间与篇幅有限,小伙伴们日后再慢慢了解即可。
目标
- 认识常用的工具,了解一些简单的基础操作
- 能看懂一些简单的查询
- 能简单使用查询语句去查询目标数据库里的一些数据
在下面正式开始之前简单了解一下概念:
SQL 是给_关系型数据库_,即长得很像 Excel 表格的数据库的查询语言。
学习和工作中常见的_关系型数据库_有很多,例如Sql Server、Mysql、Oracle、PostgreSQL等。这些数据库由不同的厂商出品。也正因为厂商不同,因此SQL在不同版本的数据库中有略微差别,但是绝大部分语句通用,大差不差,会一种其他的基本也OK。本文以Mysql举例。
至于更官方、严谨的概念描述,随便搜一下都有喏,这里不赘述。
1. 工具推荐
工欲善其事必先利其器,首先推荐一些学习和使用SQL过程中常见的工具。
1.1 安装数据库
单位的数据库是已经安好的,可以直接用。
如果想体验安装自己的数据库,刚开始网上的许多教程都建议先在自己电脑本地安装,具体安装方式可以参考一下这篇我于2022年在我C站博客小号写的:Mysql入门
至于类似现在工作中的服务器上的数据库安装推荐参考我的博客大号:CoderSharry_Linux-Docker-Mysql
1.2 连接工具
如果没有合适的连接工具,仅使用Mysql提供的命令行工具,那我们使用Mysql将会像是这样的:
市面上常见的Mysql连接工具有:
Navicat Premium、DataGrip、MySQL Workbench 等等非常多,搜一搜,选一个自己喜欢的,再找个安装教程装一下,即可。
例如Navicat大概是这样的:
可以实现很多可视化操作,非常方便。
1.3 AI工具
目前的AI工具虽然不能保证结果100%准确,但参考价值已经比以前有了质的飞跃。一般我们个人常用的GPT、Copilot、Claude以及国产的一众AI均可满足我们基本的问答参考需求。
准备一两款趁手的AI工具,进行接下来的学习吧。
2. 查询入门
这里我们就介绍一点简单的入门查询,应该能基本满足现阶段PM小伙伴的需要了吧。
2.1 SELECT 语句
从全表查开始:算是SQL的 “Hello World”
全表查
SELECT * FROM <TABLE_NAME>
例如:
SELECT * FROM `nutrition_standard_chinese`
好了,你已经会查询语句了
指定列
SELECT <column1, column2 ...> FROM <TABLE_NAME>
例如:
SELECT id, shrt_desc FROM `nutrition_standard_chinese`
2.2 WHERE 条件
通常,我们需要添加WHERE条件,给我们的查询做一个筛选。
比较条件
SELECT <column_list> FROM <TABLE_NAME>
WHERE <column> <compare_condition> <condition_value>
例如:
SELECT
*
FROM
`nutrition_standard_chinese`
WHERE water_g < 20
模糊匹配
模糊匹配就是当某个字段部分命中关键字时,返回这些命中的结果。
SELECT <column_list> FROM <TABLE_NAME>
WHERE <column> LIKE <condition_value>
例如:
SELECT
*
FROM
`nutrition_standard_chinese`
WHERE shrt_desc LIKE '%黄油%'
思考: 上述语句若改成LIKE '%黄油'
或者 LIKE '黄油%'
,其结果会如何?
2.3 JOIN 连表
JOIN 连表有很多方式,每种 JOIN 都有差别。
常用的有如下三种:
SELECT <column_list> FROM <TABLE_1>
[join_type] JOIN <TABLE_2> ON <column_1> <compare_condition> <column_2>
WHERE <column> LIKE <condition_value>
例如:
SELECT
*
FROM
nutrition_standard_chinese nsc
INNER JOIN nutrition_standard_english nse ON nsc.water_g = nse.water_g
WHERE nsc.shrt_desc LIKE '%黄油%'
2.4 聚合/分组
分组通常和聚合函数一起使用。
SELECT <column_list>, <AGGREGATE_FUNCTION(column_name)>
FROM <TABLE_NAME>
WHERE <condition>
GROUP BY <column_list>
ORDER BY <column_list>;
例如:
SELECT
id,
COUNT(*)
FROM
nutrition_standard_chinese nsc
WHERE nsc.shrt_desc LIKE '%黄油%'
GROUP BY id
更多的聚合函数,如SUM()、AVG() 等,时间与篇幅有限,请自行查阅。
2.4 子查询
子查询就是查询里面嵌套查询,例如我们在连表的时候使用一个子查询:
SELECT
t1.*
FROM nutrition_standard_chinese t1
WHERE
t1.id < (
SELECT AVG(id) FROM nutrition_standard_chinese
)
2.5 其它语句/关键字
其他语句及还有很多,如WITH子句、CASE WHEN分支结构、UNION、HAVING条件等等,时间与篇幅有限,请自行查阅。
但是这些一般是一些复杂的查询才会用到,逐渐熟悉后,用到的时候再查也不迟。
3. 推荐与参考
3.1 博客/文档
- C站Mysql入门:小号,不维护了,还在读书的时候写的,没想到今天还能用上
- CoderSharry: 这个点点关注,谢谢宝贝
- 菜鸟教程
3.2 视频
3.2 在线练习
总结
本文主要给产品小哥哥小姐姐介绍了一下简单且常用的SQL查询语句。
既然咱们这么有缘,一键三连互粉一下呗,点点关注不迷路,让我也偷师一下产品的秘技。所以,既然大家都这么卷,那产品小伙伴啥时候传授点秘技给我们呀