WHERE
子句在SQL语句中用于指定过滤条件,以便从数据库表中选取满足条件的记录。以下是一些使用WHERE
子句的不同示例,展示了其在不同场景下的应用。
示例 1: 等于(=
)
选取EmployeeID
为5的员工信息。
SELECT * FROM Employees WHERE EmployeeID = 5;
示例 2: 不等于(<>
或 !=
)
选取IsActive
不为true
(或1
,取决于你的数据库如何表示布尔值)的员工信息。
SELECT * FROM Employees WHERE IsActive <> true;
-- 或者,如果你的数据库使用1和0表示布尔值
-- SELECT * FROM Employees WHERE IsActive != 1;
示例 3: 大于(>
)、小于(<
)、大于等于(>=
)、小于等于(<=
)
选取薪资大于50000的员工信息。
SELECT * FROM Employees WHERE Salary > 50000;
示例 4: 在指定范围内(BETWEEN
)
选取薪资在30000到50000之间的员工信息(包括30000和50000)。
SELECT * FROM Employees WHERE Salary BETWEEN 30000 AND 50000;
示例 5: 列表中的值(IN
)
选取DepartmentID
为2、4或6的员工信息。
SELECT * FROM Employees WHERE DepartmentID IN (2, 4, 6);
示例 6: 模糊匹配(LIKE
)
选取名字以'J'开头的员工信息。
SELECT * FROM Employees WHERE FirstName LIKE 'J%';
这里%
是一个通配符,表示任意数量的字符。
示例 7: 空值检查(IS NULL
、IS NOT NULL
)
选取没有分配邮箱地址的员工信息。
SELECT * FROM Employees WHERE Email IS NULL;
或者,选取已分配邮箱地址的员工信息。
SELECT * FROM Employees WHERE Email IS NOT NULL;
示例 8: 逻辑运算符(AND
、OR
、NOT
)
选取IsActive
为true
且薪资大于40000的员工信息。
SELECT * FROM Employees WHERE IsActive = true AND Salary > 40000;
或者,选取IsActive
为true
或薪资大于40000的员工信息(至少满足一个条件)。
SELECT * FROM Employees WHERE IsActive = true OR Salary > 40000;
使用NOT
来选取不满足特定条件的记录,比如选取IsActive
不为true
的员工信息(与示例2类似,但展示了NOT
的用法)。
SELECT * FROM Employees WHERE NOT IsActive;