SQL数据库入门教程:查询语句SELECT使用指南
🔰 数据查询核心指令——SELECT
在关系型数据库中,SELECT语句承担着提取数据的核心任务。无论是数据分析、报表生成还是日常运维,掌握SELECT都是踏入SQL世界的第一步。本文梳理SELECT的基础用法,全程干货,适合新手收藏备用。
📌 一、基本语法结构
SELECT语句的最简形式:
SELECT 列名 FROM 表名;
该语句从指定表中检索对应列的全部数据。若需查看所有列,可使用星号(*):
SELECT * FROM 表名;
生产环境中建议尽量避免 SELECT *,明确列出所需列名有助于提升查询效率与可读性。
✨ 二、去重查询:DISTINCT
当列中包含重复值时,在SELECT后添加 DISTINCT 关键字可返回唯一结果。
SELECT DISTINCT 列名 FROM 表名;
示例场景:从员工表中查询所有不重复的部门名称。
🔍 三、条件过滤:WHERE 子句
WHERE 子句用于筛选符合条件的行。常用运算符包括:
比较运算符:
=,<>,<,>,<=,>=逻辑运算符:
AND,OR,NOT范围查询:
BETWEEN列表匹配:
IN模式匹配:
LIKE
示例:查询薪资大于5000且部门为“技术部”的员工
SELECT 姓名, 薪资 FROM 员工表WHERE 薪资 > 5000 AND 部门 = '技术部';
文字值需用单引号包裹,数字直接书写。
📊 四、排序输出:ORDER BY
ORDER BY 子句可对结果集进行升序(ASC)或降序(DESC)排列,默认升序。
SELECT 姓名, 入职日期 FROM 员工表ORDER BY 入职日期 DESC;
多列排序写法:ORDER BY 部门 ASC, 薪资 DESC,先按部门升序,同部门内按薪资降序。
📋 五、限制结果数量:LIMIT / TOP
不同数据库实现方式略有差异。
MySQL / PostgreSQL:使用 LIMIT 子句
SELECT 列名 FROM 表名 LIMIT 数量;
SQL Server:使用 TOP 关键字
SELECT TOP 数量 列名 FROM 表名;
Oracle:使用
ROWNUM或FETCH FIRST子句
示例:查询最新入职的前5名员工(MySQL写法)
SELECT * FROM 员工表 ORDER BY 入职日期 DESC LIMIT 5;
🧩 六、别名与计算字段
可为列或表指定别名,使结果更具可读性。
SELECT 姓名 AS 员工姓名, 薪资 * 12 AS 年薪 FROM 员工表;
AS 可省略,但保留更清晰。别名可用于 ORDER BY,但不能直接用于 WHERE(受语句执行顺序影响)。
⚠️ 注意事项与最佳实践
关键字不区分大小写,习惯上将SQL关键字大写(SELECT, FROM, WHERE),表名和列名小写,以增强可读性。
字符串匹配 LIKE 中,
%代表任意字符序列,_代表单个字符。如WHERE 姓名 LIKE '张%'匹配所有姓张的记录。NULL值判断需使用
IS NULL或IS NOT NULL,不能用等号(= NULL)。多条件组合时,善用括号明确优先级,避免逻辑歧义。
💡 总结
SELECT语句是SQL的灵魂,从简单检索到复杂的多表连接,均以此为基础。先熟练掌握单表查询的各个子句,再逐步深入 JOIN、GROUP BY 等高级功能,方能游刃有余。建议跟随示例动手练习,把基础夯实。