SQL WHERE 条件查询教程
在SQL中,WHERE
条件用于在 SELECT
语句后过滤结果集,只返回符合条件的记录。它帮助我们从大量数据中提取所需的信息。以下是使用 WHERE
条件的逐步指南。
1. 基本语法
sql">SELECT [字段] FROM [表] WHERE [条件];
- SELECT:指定要返回的字段。
- FROM:指定数据来自的表。
- WHERE:过滤符合条件的记录。
2. 示例数据
假设有一个 employees
表,包含以下列:
id
(员工ID)name
(员工名字)department
(部门)age
(年龄)
数据如下:
sql">CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,department VARCHAR(30) NOT NULL,age INT NOT NULL
);INSERT INTO employees (id, name, department, age)
VALUES (1, 'Alice', 'Marketing', 28),(2, 'Bob', 'Sales', 36),(3, 'Charlie', 'HR', 25),(4, 'Diana', 'IT', 30);
3. 常用 WHERE 条件类型
(1)等于(=)
筛选特定值的记录。
sql">SELECT id, name FROM employees WHERE age = 28;
结果:返回年龄为28岁的员工。
(2)不等于(!= 或 <>)
筛选不等于特定值的记录。
sql">SELECT id, name FROM employees WHERE age != 30;
结果:返回所有年龄不为30岁的员工.
(3)大于(>)、小于(<)
筛选大于或小于特定数值的记录。
sql">-- 大于
SELECT id, name FROM employees WHERE age > 25;-- 小于
SELECT id, name FROM employees WHERE age < 35;
结果:分别返回年龄大于25岁和小于35岁的员工.
(4)大于等于(>=)、小于等于(<=)
筛选大于或等于、小于或等于特定数值的记录。
sql">-- 大于等于
SELECT id, name FROM employees WHERE age >= 28;-- 小于等于
SELECT id, name FROM employees WHERE age <= 30;
结果:分别返回年龄大于等于28岁和小于等于30岁的员工.
(5)IN 条件
筛选记录包含在给定列表中的值。
sql">SELECT id, name FROM employees WHERE department IN ('Sales', 'Marketing');
结果:返回部门为’Sales’或’Marketing’的员工.
(6)LIKE 条件
模式匹配,用于文本字段的筛选。
sql">SELECT id, name FROM employees WHERE name LIKE '%Alice';
结果:返回名字包含’Alice’前缀的员工.
(7)BETWEEN 条件
在两个值之间过滤记录。
sql">SELECT id, name FROM employees WHERE age BETWEEN 25 AND 30;
结果:返回年龄在25岁到30岁之间的员工.
4. WHERE 子句的位置
WHERE子句必须放置在 SELECT
和 FROM
之间。以下是正确的语法结构:
sql">SELECT [字段] FROM [表] WHERE [条件];
如果 WHERE
条件不正确,SQL会返回空结果集。
5. 示例:完整的 SQL 查询
查询所有年龄大于25岁的员工
sql">SELECT id, name FROM employees WHERE age > 25;
结果:返回所有年龄大于25岁的员工.
查询部门为 ‘Sales’ 或 ‘Marketing’ 的员工
sql">SELECT id, name FROM employees WHERE department IN ('Sales', 'Marketing');
结果:返回部门是’Sales’或’Marketing’的员工.
查询名字包含 ‘John’ 的员工
sql">SELECT id, name FROM employees WHERE name LIKE '%John%';
注意:LIKE
条件需要在数据库支持的编程语言中使用。
通过这些步骤和示例,你可以有效地使用 WHERE 条件在SQL中过滤数据。记住,WHERE 条件可以帮助你快速找到所需的数据!