第三回:精准定位

—— WHERE 子句与逻辑运算符
👈 上一回:探查术 🏠 回到大竹峰 下一回:长幼有序 👉

若是遇到魔教妖人,你难道要对所有人施放神剑御雷真诀吗?那岂不是连同门也伤了?

当然不是!我只打穿黑衣服的,或者手里拿着血骷髅的。

这便是 WHERE 子句的作用——条件过滤。只有符合条件的记录,才会被选中。

🎯 锁定目标:WHERE

📜 追踪符 (语法)

WHERE 子句用于提取那些满足指定标准的记录。它不仅用于 SELECT,在 UPDATEDELETE 中更是至关重要(防止误伤友军)。

SELECT * FROM table_name WHERE column_name operator value;

🧘‍♂️ 常用法印 (运算符)

要想精准定位,需熟练掌握以下法印:

符号含义诛仙示例
=等于Sect = '青云门' (只找青云门人)
<>!=不等于Sect != '魔教' (正道人士)
>大于Power > 5000 (高手)
<小于Age < 18 (少年英才)
>=大于等于Level >= 10 (已出师)
<=小于等于Level <= 3 (刚入门)
BETWEEN在...之间Age BETWEEN 20 AND 30 (青年才俊)
LIKE模式匹配Name LIKE '张%' (姓张的)
IN在列表内Sect IN ('天音寺', '焚香谷') (两派弟子)

🤝 连环计:AND, OR, NOT

单一条件往往不够用。我们可以用逻辑运算符将多个条件组合起来。

1. AND (严师)

要求: 所有条件必须同时满足

-- 寻找:门派是鬼王宗 且 性别是女 (如碧瑶) SELECT * FROM Disciples WHERE Sect = 'GuiWang' AND Gender = 'Female';

2. OR (慈母)

要求: 只要满足其中一个条件即可。

-- 寻找:是张小凡 或 是林惊羽 SELECT * FROM Disciples WHERE Name = 'Zhang Xiaofan' OR Name = 'Lin Jingyu';

3. NOT (逆徒)

要求: 条件不成立时显示。

-- 寻找:不是青云门的弟子 SELECT * FROM Disciples WHERE NOT Sect = 'QingYun';

🧘‍♂️ 终极试炼:混元一气 (括号的重要性)

ANDOR 混用时,必须小心!AND 的优先级通常高于 OR。为了避免歧义,请务必使用括号

任务: 找出修为高深(>9000)的,且属性是(雷 或 火)的法宝。

错误写法

SELECT * FROM Treasures WHERE Power > 9000 AND Element = '雷' OR Element = '火';

后果:会选出所有火属性法宝(不管修为多少),和修为>9000的雷法宝。

正确写法

SELECT * FROM Treasures WHERE Power > 9000 AND (Element = '雷' OR Element = '火');

后果:先选出雷或火的,再从中筛选修为>9000的。