前言
在数据库操作的广阔天地中,数据查询无疑是数据工程师和分析师最频繁接触的任务之一。数据操作语言(DML)中的SELECT
语句,作为数据检索的主力军,其功能之强大、应用之广泛,堪称数据库语言中的瑰宝。
SELECT语句基础
SELECT
语句是数据查询的起点,用于从数据库中检索数据。其基本语法如下:
SELECT column1, column2, ...
FROM table_name;
- column1, column2, ...:指定你想要查询的列名,用逗号分隔。使用星号(*)可以表示选择所有列。
- table_name:指明查询数据所在的表。
示例:
假设有一个Employees
表,包含ID
, Name
, Position
, 和 Salary
四列,以下是如何查询所有员工的姓名和职位:
SELECT Name, Position FROM Employees;
WHERE子句的使用
WHERE
子句用于过滤查询结果,只显示满足特定条件的行。其基本形式为:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
- condition:是一个布尔表达式,用于设定筛选条件。
示例:
查询薪资高于50000的员工信息:
SELECT * FROM Employees
WHERE Salary > 50000;
ORDER BY与LIMIT的运用
- ORDER BY:用于对查询结果进行排序。可以按升序(ASC)或降序(DESC)排列。
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC|DESC];
- LIMIT:限制返回的结果数量,常用于分页或获取前几条记录。
SELECT column1, column2, ... FROM table_name LIMIT [offset,] rows;
示例:
查询薪资最高的前5名员工姓名和薪资,并按薪资降序排列:
SELECT Name, Salary FROM Employees ORDER BY Salary DESC LIMIT 5;
聚合函数(SUM, AVG, COUNT等)的使用
聚合函数用于对一组值执行计算,并返回单一的值。常用的聚合函数有:
- SUM(column_name):计算指定列的总和。
- AVG(column_name):计算指定列的平均值。
- COUNT(column_name):计算指定列中非NULL值的数量。
-
示例:
//计算Employees表中所有员工的平均薪资: SELECT AVG(Salary) AS AverageSalary FROM Employees; //统计公司员工总数: SELECT COUNT(*) AS TotalEmployees FROM Employees;
注意
- 性能优化:在使用
WHERE
子句时,尽量减少返回的行数,可以显著提高查询效率。利用索引可以进一步加速查询。 - 复合条件:
WHERE
子句支持复杂的逻辑表达式,包括AND、OR、NOT等,灵活组合可以实现精准数据筛选。 - GROUP BY与HAVING:当需要根据某一列或几列对结果集进行分组,并对每个组应用聚合函数时,使用
GROUP BY
,配合HAVING
子句可以对分组后的结果进行进一步筛选。 - 避免SELECT *:除非确实需要表中的所有列,否则最好明确指定所需的列名。