一、基础语法与核心子句 1. 基本结构 SELECT语句的最简形式为:`SELECT 字段列表 FROM 表名;` • 若需查询表中所有字段,可使用通配符`*`,如`SELECT * FROM 员工表;` • 字段列表支持指定多个列,用逗号分隔,如`SELECT 姓名, 部门 FROM 员工表;`
2. 关键子句功能 • FROM子句:指定数据来源(单个表、多表或视图),是查询的起点。 • WHERE子句:过滤行数据,仅返回满足条件的记录,如`SELECT 姓名 FROM 员工表 WHERE 部门='技术部';` • ORDER BY子句:对结果集排序,支持`ASC`(升序,默认)或`DESC`(降序),如`SELECT 姓名, 工资 FROM 员工表 ORDER BY 工资 DESC;`
二、进阶操作与优化 1. 去重与别名 • 使用`DISTINCT`去除重复行,如`SELECT DISTINCT 部门 FROM 员工表;` • 为字段或表设置别名,简化查询结果,如`SELECT 姓名 AS 员工姓名, 部门 AS 所属部门 FROM 员工表 e;`
2. 多表关联查询 通过`JOIN`子句连接多个表,常见类型包括: • INNER JOIN:仅返回匹配行,如`SELECT e.姓名, d.部门名称 FROM 员工表 e INNER JOIN 部门表 d ON e.部门ID = d.部门ID;` • LEFT/RIGHT JOIN:返回左/右表所有行,匹配表无数据时显示`NULL`。
3. 分组与聚合 • `GROUP BY`子句按指定字段分组,常与聚合函数(如`COUNT()`、`SUM()`)配合,如`SELECT 部门, COUNT(*) AS 员工数 FROM 员工表 GROUP BY 部门;` • `HAVING`子句过滤分组结果(替代`WHERE`对聚合结果的限制),如`SELECT 部门, SUM(工资) AS 总工资 FROM 员工表 GROUP BY 部门 HAVING 总工资 > 10000;`
三、性能优化与注意事项 1. LIMIT子句:限制返回结果数量,如`SELECT * FROM 员工表 LIMIT 10;`(返回前10条记录),或`LIMIT 10, 20;`(从第111条开始返回20条)。 2. 执行顺序:子句执行顺序为`FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT`,需注意逻辑依赖。 3. 避免过度查询:尽量指定具体字段而非`*`,减少数据传输量;对常用查询字段建立索引提升速度。