WHERE 子句用于过滤记录,从表中选取符合特定条件的记录。通过 WHERE 子句,你可以指定数据查询时需要满足的条件,从而精确地获取所需的数据。
WHERE 子句的基本语法
WHERE 子句通常出现在 SELECT 语句之后,用于定义查询条件。基本语法如下:
SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件表达式;
这里的 条件表达式
是一个逻辑表达式,可以使用各种运算符来构建。常见的运算符包括等号(=)、不等于(<> 或 !=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。
示例
假设有一个名为 employees
的表,其中包含以下列:id
, name
, position
, salary
。如果你想查询所有工资大于 5000 的员工信息,可以使用如下 SQL 语句:
SELECT id, name, position, salary FROM employees WHERE salary > 5000;
比较运算符
比较运算符用于比较两个值,并根据它们之间的关系返回真或假。
- = 等于
- <> 或 != 不等于
- > 大于
- < 小于
- >= 大于等于
- <= 小于等于
示例
查询 employees
表中所有职位为 "Manager" 的员工信息:
SELECT id, name, position, salary FROM employees WHERE position = 'Manager';
逻辑运算符
除了比较运算符外,MySQL 还支持逻辑运算符,如 AND、OR 和 NOT,这些运算符允许你组合多个条件表达式。
- AND 返回 TRUE 如果所有的条件都为真。
- OR 返回 TRUE 如果至少有一个条件为真。
- NOT 反转条件的结果。
示例
查询 employees
表中所有职位为 "Manager" 或者工资大于 8000 的员工信息:
SELECT id, name, position, salary FROM employees WHERE position = 'Manager' OR salary > 8000;
查询 employees
表中所有职位不是 "Developer" 的员工信息:
SELECT id, name, position, salary FROM employees WHERE NOT position = 'Developer';
BETWEEN 运算符
BETWEEN 运算符用于选取介于两个值之间的数据范围。这些值可以是数字、文本或日期。
语法
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
示例
假设你想查询 employees
表中工资在 5000 到 10000 之间的员工信息:
SELECT id, name, position, salary FROM employees WHERE salary BETWEEN 5000 AND 10000;
IN 运算符
IN 运算符允许你在 WHERE 子句中规定多个可能的值。
语法
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
示例
查询 employees
表中职位为 "Manager" 或 "Developer" 的员工信息:
SELECT id, name, position, salary FROM employees WHERE position IN ('Manager', 'Developer');
LIKE 运算符
LIKE 运算符用于在 WHERE 子句中搜索列中的指定模式。
语法
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
通配符
- % 代表零个、一个或多个字符。
- _ 代表一个字符。
示例
查询 employees
表中名字以 "J" 开头的员工信息:
SELECT id, name, position, salary FROM employees WHERE name LIKE 'J%';
查询 employees
表中名字第二个字母是 "a" 的员工信息:
SELECT id, name, position, salary FROM employees WHERE name LIKE '_a%';
IS NULL 运算符
IS NULL 运算符用于检查字段是否为 NULL。
语法
SELECT column_name(s) FROM table_name WHERE column_name IS NULL;
示例
查询 employees
表中没有设置薪水的员工信息:
SELECT id, name, position, salary FROM employees WHERE salary IS NULL;
以上就是 MySQL 中 WHERE 子句的基本用法和示例。通过灵活运用 WHERE 子句中的各种运算符和条件,你可以精确地筛选出你需要的数据。