师父让我去后山竹林找几根“黑节竹”,可是这满山的竹子,我该怎么找啊?
傻小子,你若是把整座山的竹子都砍回来(SELECT *),岂不是要累死?你应该只取你需要的。
SELECT 语句用于从数据库中提取数据。结果被存储在一个结果表中,称为结果集。
SELECT column1, column2, ...
FROM table_name;
如果你想看这张表里的所有内容,可以使用星号 *。
SELECT * FROM Disciples;
⚠️ 走火入魔警告: 在实际修仙(生产环境)中,慎用 SELECT *。如果表里有几百万行数据,这招会耗尽你的法力(服务器资源),甚至导致系统崩溃。
只获取你需要的列。比如,我们只想知道弟子们的姓名和所属门派:
SELECT Name, Sect FROM Disciples;
结果示例:
| Name | Sect |
|---|---|
| Zhang Xiaofan | QingYun |
| Lu Xueqi | QingYun |
| Bi Yao | GuiWang |
| Lin Jingyu | QingYun |
有时候,列的名字太长或者太难懂(比如 dis_name_v2),我们可以给它取个好听的别名,让结果更容易阅读。
SELECT Name AS 弟子姓名, Sect AS 所属门派
FROM Disciples;
效果: 查询结果的表头会变成“弟子姓名”和“所属门派”,而不是原来的英文列名。
我刚才查了一下门派(Sect),结果全是“QingYun, QingYun, QingYun...”。我只想知道一共有几个门派,不想看重复的!
这时候就要用 DISTINCT 关键词了。它能帮你过滤掉重复的杂质,只留下独一无二的精华。
SELECT DISTINCT 语句用于返回唯一不同的值。
SELECT DISTINCT column1, column2, ...
FROM table_name;
从弟子表 (Disciples) 中查询所有出现过的门派,去除重复。
SELECT DISTINCT Sect FROM Disciples;
结果对比:
❌ 普通查询 (SELECT Sect)
✅ 去重查询 (SELECT DISTINCT Sect)
如果你写了 SELECT DISTINCT Sect, Age,那么只有当门派和年龄都相同时,才会被视为重复。只要有一个不同,就会被保留。