1. 常用筛选语句
1.1 SELECT语句
SELECT语句是SQL中最基础的筛选语句之一,它用于从一个或多个表中选择列的数据。在SELECT语句中,可以使用 WHERE 关键字来过滤数据。
下面是一个简单的示例,它从一个名为 "employees" 的表中选择名字是 "John Doe" 的员工:
SELECT * FROM employees WHERE name = 'John Doe';
上述代码中,* 表示选择所有列,FROM 指定数据来自哪个表,WHERE 用于过滤数据。
1.2 ORDER BY语句
ORDER BY语句用于根据指定的列或表达式对结果集进行排序,默认情况下按升序排列。
下面是一个例子,它按照 "age" 列降序排列:
SELECT * FROM employees ORDER BY age DESC;
1.3 GROUP BY语句
GROUP BY语句用于将结果集按照指定的列进行分组。例如,如果要按照部门对员工进行分组,则可以使用以下代码:
SELECT department, AVG(salary) FROM employees GROUP BY department;
上述代码将按照部门分组,并计算每个部门的平均工资。
2. 更高级的筛选语句
除了基本的SELECT、ORDER BY和GROUP BY语句之外,SQL还提供了更高级的筛选方法。
2.1 DISTINCT语句
DISTINCT语句用于从结果集中选择不同的值。以下示例从 "employees" 表中选择不同的部门名称:
SELECT DISTINCT department FROM employees;
2.2 IN语句
IN语句用于在 WHERE 子句中指定多个值。以下示例选择居住在纽约、洛杉矶或波士顿的员工:
SELECT * FROM employees WHERE city IN ('New York', 'Los Angeles', 'Boston');
2.3 LIKE语句
LIKE语句用于在 WHERE 子句中搜索模式匹配的文本。以下示例选择所有姓氏以 "Smi" 开头的员工:
SELECT * FROM employees WHERE last_name LIKE 'Smi%';
2.4 BETWEEN语句
BETWEEN语句用于在 WHERE 子句中指定一个范围。以下示例选择工资在 5000 到 8000 之间的员工:
SELECT * FROM employees WHERE salary BETWEEN 5000 AND 8000;
2.5 NULL值
NULL值代表一个未知或未应用的值。在SQL中,可以使用 IS NULL 或 IS NOT NULL 来测试 NULL 值。以下示例选择没有指定电子邮件地址的员工:
SELECT * FROM employees WHERE email IS NULL;
3. 总结
在SQL中,使用基本的SELECT、ORDER BY和GROUP BY语句,可以轻松地从一个或多个表中选择列的数据,并按照指定的排序或分组方法进行筛选。此外,SQL还提供了 DISTINCT、IN、LIKE、BETWEEN 和 NULL 等高级筛选方法。