SQL基础查询怎么写_关键概念讲透让学习更加顺畅【教学】

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 后面是给新字段起的临时名字,让结果更易读
  • 去重用 DISTINCTSELECT DISTINCT department FROM employees;,避免重复部门名刷屏

WHERE:加条件,不是“全盘扫描”

没有 WHERE 就像进超市不看标签——查得全,但不精准。它负责“过滤行”,用的是布尔逻辑:

  • 基础比较:WHERE age > 18WHERE status = 'active'(注意字符串用单引号)
  • 组合条件:WHERE city = 'Beijing' AND salary >= 8000WHERE 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;
  • 表别名(uo)让语句短而清晰,尤其字段名重复时(比如都有 id)必须用别名区分
  • 连接条件(ON)不是可选项,漏了就是笛卡尔积——1000人 × 5000订单 = 500万行垃圾结果

基本上就这些。SQL不是编程语言,更像一种精确的“数据提问语法”。把 SELECT/ FROM / WHERE / ORDER BY / LIMIT 这五个关键词当作日常提问的主干,其余都是修饰词。练熟它们,90% 的基础查询就能自己写出来。