第二回:探查术

—— SELECT 与 SELECT DISTINCT
👈 上一回:初入青云 🏠 回到大竹峰 下一回:精准定位 👉

师父让我去后山竹林找几根“黑节竹”,可是这满山的竹子,我该怎么找啊?

傻小子,你若是把整座山的竹子都砍回来(SELECT *),岂不是要累死?你应该只取你需要的。

🗡️ 基础剑诀:SELECT

📜 剑谱残页 (语法)

SELECT 语句用于从数据库中提取数据。结果被存储在一个结果表中,称为结果集。

SELECT column1, column2, ... FROM table_name;

🧘‍♂️ 第一式:全知全能 (SELECT *)

如果你想看这张表里的所有内容,可以使用星号 *

SELECT * FROM Disciples;

⚠️ 走火入魔警告: 在实际修仙(生产环境)中,慎用 SELECT *。如果表里有几百万行数据,这招会耗尽你的法力(服务器资源),甚至导致系统崩溃。

🧘‍♂️ 第二式:有的放矢 (SELECT Column)

只获取你需要的列。比如,我们只想知道弟子们的姓名所属门派

SELECT Name, Sect FROM Disciples;

结果示例:

NameSect
Zhang XiaofanQingYun
Lu XueqiQingYun
Bi YaoGuiWang
Lin JingyuQingYun

🎭 易容术:AS (Alias)

📜 赐名 (Alias)

有时候,列的名字太长或者太难懂(比如 dis_name_v2),我们可以给它取个好听的别名,让结果更容易阅读。

SELECT Name AS 弟子姓名, Sect AS 所属门派 FROM Disciples;

效果: 查询结果的表头会变成“弟子姓名”和“所属门派”,而不是原来的英文列名。

✨ 去伪存真:SELECT DISTINCT

我刚才查了一下门派(Sect),结果全是“QingYun, QingYun, QingYun...”。我只想知道一共有几个门派,不想看重复的!

这时候就要用 DISTINCT 关键词了。它能帮你过滤掉重复的杂质,只留下独一无二的精华。

📜 提纯心法

SELECT DISTINCT 语句用于返回唯一不同的值。

SELECT DISTINCT column1, column2, ... FROM table_name;

🧘‍♂️ 试炼:门派普查

弟子表 (Disciples) 中查询所有出现过的门派,去除重复。

SELECT DISTINCT Sect FROM Disciples;

结果对比:

普通查询 (SELECT Sect)

  • QingYun
  • QingYun
  • GuiWang
  • QingYun

去重查询 (SELECT DISTINCT Sect)

  • QingYun
  • GuiWang

⚠️ 心法要点

如果你写了 SELECT DISTINCT Sect, Age,那么只有当门派和年龄都相同时,才会被视为重复。只要有一个不同,就会被保留。