SQL基础查询核心是SELECT...FROM...语句,需掌握SELECT字段明确与别名、WHERE条件过滤、ORDER BY排序、LIMIT限制结果及JOIN表连接五大关键。

SQL基础查询的核心就一条语句:SELECT ... FROM ...,它像“从书架上找书”一样直观——先说要什么(SELECT),再说从哪儿找(FROM)。掌握几个关键概念,写查询就不再靠死记硬背。
SELECT:明确你要的“字段”,不是“所有”
初学者常写 SELECT *,看似省事,实际低效又模糊。真正清晰的写法是明确列出需要的列名,比如:
-
SELECT name, age FROM students;—— 只取姓名和年龄,结果干净、传输快、逻辑清楚 - 支持计算和别名:
SELECT name, salary * 12 AS annual_income FROM employees;,AS后面是给新字段起的临时名字,让结果更易读 - 去重用
DISTINCT:SELECT DISTINCT department FROM employees;,避免重复部门名刷屏
WHERE:加条件,不是“全盘扫描”
没有 WHERE 就像进超市不看标签——查得全,但不精准。它负责“过滤行”,用的是布尔逻辑:
- 基础比较:
WHERE age > 18、WHERE status = 'active'(注意字符串用单引号) - 组合条件:
WHERE city = 'Beijing' AND salary >= 8000;WHERE category IN ('A', 'B', 'C')比一堆 OR 更简洁 - 空值要特殊对待:
WHERE email IS NOT NULL,不能写= NULL,这是SQL里最容易踩的坑之一
ORDER BY 和 LIMIT:结果要“排好队”,也要“有分寸”
默认查出来的顺序是不确定的,靠磁盘存储顺序,千万别依赖。想看最新、最贵、或按字母排?必须显式排序:
-
ORDER BY created_at DESC(DESC 降序,ASC 升序可省略) - 多字段排序:
ORDER BY status ASC, updated_at DESC—— 先按状态升序,状态相同时再按更新时间降序 -
LIMIT 10控制返回条数,调试时加它,避免一不小心查出百万行卡死界面
FROM 和表连接:数据不在一张表?那就“拉手”
真实业务中,用户信息在 users 表,订单在 orders 表,想查“每个用户的首笔订单金额”,就得把两张表连起来。最常用的是 INNER JOIN:
SELECT u.name, o.amount FROM users u INNER JOIN orders o ON u.id = o.user_id;- 表别名(
u、o)让语句短而清晰,尤其字段名重复时(比如都有id)必须用别名区分 - 连接条件(
ON)不是可选项,漏了就是笛卡尔积——1000人 × 5000订单 = 500万行垃圾结果
基本上就这些。SQL不是编程语言,更像一种精确的“数据提问语法”。把 SELECT/ FROM / WHERE / ORDER BY / LIMIT 这五个关键词当作日常提问的主干,其余都是修饰词。练熟它们,90% 的基础查询就能自己写出来。










