两门最常用的数据工具 · 一份就能看懂的速成讲解
一句话区分:SQL 负责"从数据库里把数据拿出来",Python 负责"拿到数据后做任何处理"。
专门和数据库打交道的语言。你告诉它"我要什么数据",它负责找出来。查询、筛选、统计、增删改。
场景:从 10 万条订单里挑出"今天北京下的单"。
通用编程语言。能算数、能画图、能爬网页、能做 AI。逻辑、循环、自动化全靠它。
场景:把拿到的订单算出每个城市的销售额并生成报表。
数据库可以想象成一堆 Excel 表格。下面用一张 users 用户表举例。
| id | name | city | age |
|---|---|---|---|
| 1 | 小艳 | 北京 | 28 |
| 2 | 阿强 | 上海 | 34 |
| 3 | 小美 | 北京 | 25 |
-- 查所有列 SELECT * FROM users; -- 只查名字和城市,且只要北京的人 SELECT name, city FROM users WHERE city = '北京'; -- 按年龄从大到小排,只取前 2 条 SELECT * FROM users ORDER BY age DESC LIMIT 2;
-- 每个城市有多少人 SELECT city, COUNT(*) AS 人数 FROM users GROUP BY city;
INSERT INTO users (name, city, age) VALUES ('小新', '广州', 30); UPDATE users SET age = 29 WHERE name = '小艳'; DELETE FROM users WHERE id = 3;
| 关键字 | 作用 |
|---|---|
SELECT | 查询哪些列 |
FROM | 从哪张表 |
WHERE | 筛选条件 |
ORDER BY | 排序 |
GROUP BY | 分组统计 |
LIMIT | 限制条数 |
name = "小艳" # 字符串 age = 28 # 整数 price = 9.9 # 小数 is_vip = True # 布尔(真/假) print(f"{name} 今年 {age} 岁") # 输出:小艳 今年 28 岁
cities = ["北京", "上海", "广州"] # 列表:有序 print(cities[0]) # 北京(从 0 开始数) user = {"name": "小艳", "age": 28} # 字典:键值对 print(user["name"]) # 小艳
# 判断 if age >= 18: print("成年人") else: print("未成年") # 循环:把列表里每个城市都打印一遍 for c in cities: print(c)
def greet(name): return f"你好,{name}!" print(greet("小艳")) # 你好,小艳!
这是真实工作中最常见的样子 —— 用 Python 连数据库,跑一条 SQL 把数据取出来处理:
import sqlite3 # 1. 连接数据库 conn = sqlite3.connect("shop.db") # 2. 用 SQL 查"北京的用户" sql = "SELECT name, age FROM users WHERE city = '北京'" rows = conn.execute(sql).fetchall() # 3. 用 Python 处理结果 for name, age in rows: print(f"{name}({age}岁)") conn.close()
| 我想做的事 | 用什么 |
|---|---|
| 从数据库取 / 改数据 | SQL |
| 做计算、写逻辑、自动化 | Python |
| 处理 Excel / CSV 文件 | Python(pandas 库) |
| 统计每组的数量/总和 | SQL 的 GROUP BY |
| 爬网页、做接口、跑 AI | Python |
1️⃣ 先把 Python 的变量、列表、判断、循环练熟(能写小脚本)。
2️⃣ 再学 SQL 的 SELECT … WHERE … GROUP BY(能查数据)。
3️⃣ 最后把两者合起来:Python 连库跑 SQL。
动手永远比看重要 —— 每个例子都自己敲一遍,比读十遍都管用。