目录
WHERE
子句的基本语法- 常用条件运算符
AND
与OR
逻辑运算符IN
子句BETWEEN
子句LIKE
子句IS NULL
和IS NOT NULL
EXISTS
子句NOT
运算符- 结合多个条件的查询示例
- 参考资料
WHERE
子句的基本语法
WHERE
子句用于从表中筛选符合指定条件的记录。它用于 SQL 查询的 SELECT、UPDATE、DELETE 等语句中。
基本语法:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
示例:查询所有用户名为 ‘alice’ 的用户
SELECT * FROM users
WHERE username = 'alice';
此查询返回所有 username
等于 ‘alice’ 的记录。
常用条件运算符
在 WHERE
子句中,常用的条件运算符包括:
=
: 等于<>
或!=
: 不等于>
: 大于<
: 小于>=
: 大于或等于<=
: 小于或等于BETWEEN ... AND
: 在一个范围内IN (...)
: 在一组值中LIKE
: 模糊匹配IS NULL
或IS NOT NULL
: 判断空值
AND
与 OR
逻辑运算符
你可以使用 AND
和 OR
逻辑运算符连接多个条件,组合更复杂的查询。
示例:使用 AND
查询年龄大于 25 且状态为 ‘active’ 的用户
SELECT * FROM users
WHERE age > 25 AND status = 'active';
示例:使用 OR
查询用户名为 ‘alice’ 或年龄大于 30 的用户
SELECT * FROM users
WHERE username = 'alice' OR age > 30;
IN
子句
IN
子句允许你指定多个值,筛选字段值在指定列表中的记录。
基本语法:
SELECT column1, column2
FROM table_name
WHERE column_name IN (value1, value2, ...);
示例:查询用户名为 ‘alice’、’bob’ 或 ‘carol’ 的用户
SELECT * FROM users
WHERE username IN ('alice', 'bob', 'carol');
BETWEEN
子句
BETWEEN
用于筛选字段值在指定范围内的记录,范围包含边界值。
基本语法:
SELECT column1, column2
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
示例:查询年龄在 20 到 30 岁之间的用户
SELECT * FROM users
WHERE age BETWEEN 20 AND 30;
LIKE
子句
LIKE
用于模糊匹配字符串,可以使用 %
和 _
作为通配符:
%
表示零个或多个字符_
表示一个字符
基本语法:
SELECT column1, column2
FROM table_name
WHERE column_name LIKE 'pattern';
示例:查询用户名以 ‘a’ 开头的用户
SELECT * FROM users
WHERE username LIKE 'a%';
示例:查询邮箱中包含 ‘example’ 的用户
SELECT * FROM users
WHERE email LIKE '%example%';
IS NULL
和 IS NOT NULL
IS NULL
用于检查某个字段是否为 NULL
,IS NOT NULL
用于检查字段是否不是 NULL
。
基本语法:
SELECT column1, column2
FROM table_name
WHERE column_name IS NULL;
示例:查询没有提供电子邮件地址的用户
SELECT * FROM users
WHERE email IS NULL;
示例:查询有电子邮件地址的用户
SELECT * FROM users
WHERE email IS NOT NULL;
EXISTS
子句
EXISTS
用于检查子查询是否返回结果。EXISTS
返回布尔值 TRUE
或 FALSE
。
基本语法:
SELECT column1, column2
FROM table_name
WHERE EXISTS (SELECT * FROM other_table WHERE condition);
示例:查询所有有订单记录的用户
SELECT username
FROM users
WHERE EXISTS (SELECT * FROM orders WHERE orders.user_id = users.id);
NOT
运算符
NOT
运算符用于反转布尔值的结果,常用于与 IN
、BETWEEN
、EXISTS
等条件组合。
基本语法:
SELECT column1, column2
FROM table_name
WHERE NOT condition;
示例:查询年龄不在 20 到 30 岁之间的用户
SELECT * FROM users
WHERE age NOT BETWEEN 20 AND 30;
结合多个条件的查询示例
示例:查询用户名为 ‘alice’ 且年龄大于 25 岁的用户
SELECT * FROM users
WHERE username = 'alice' AND age > 25;
示例:查询用户名为 ‘alice’ 或 ‘bob’ 且状态为 ‘active’ 的用户
SELECT * FROM users
WHERE (username = 'alice' OR username = 'bob') AND status = 'active';
参考资料
如果你有更多复杂的查询需求或想了解如何优化查询,随时可以告诉我!
发表回复