什么是select语句_mysql查询基础用法

10次阅读

select语句用于从表中查询数据而不修改原数据,核心结构为SELECT字段、FROM表名、分号结尾;常用扩展包括WHERE过滤、ORDER BY排序、DISTINCT去重、AS别名;执行顺序为FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→liMIT。

什么是select语句_mysql查询基础用法

SELECT 语句是 mysql 中最基础、最常用的查询命令,作用是从一个或多个表中提取数据,**不修改原始数据**,只返回结果集(即临时表格)。它就像“取数的窗口”,你告诉数据库“要什么、从哪来、按什么条件、怎么排”,它就给你一份干净的结果。

核心结构:三要素缺一不可

一条基本 SELECT 语句至少包含三部分:

  • SELECT 后跟字段列表:指定要查哪些列,如 SELECT name, age;用 * 表示查全部字段(但生产环境建议避免)
  • FROM 后跟表名:指明数据来源,如 FROM users
  • 分号(;)结尾:表示语句结束(多条语句时必须加)

例如:SELECT id, username FROM users; —— 从 users 表中取出 id 和 username 两列。

常用扩展:让查询更精准实用

实际使用中,常叠加以下子句提升表达力:

  • WHERE:加条件过滤,如 WHERE status = 'active'WHERE age BETWEEN 18 AND 25
  • ORDER BY:排序,如 ORDER BY created_at DESC(倒序)
  • DISTINCT:去重,如 SELECT DISTINCT city FROM customers
  • AS:起别名,让字段或表名更清晰,如 SELECT user_name AS name FROM users u(u 是 users 的表别名)

执行顺序决定逻辑写法

MySQL 实际执行 SELECT 时,并不是按你写的顺序运行,而是严格遵循:

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

这意味着:

  • WHERE 在 SELECT 之前执行,所以不能在 WHERE 中直接用 SELECT 里定义的别名
  • HAVING 是对分组后的结果再筛选,只能配合 GROUP BY 使用
  • ORDER BY 和 LIMIT 总是最后生效,控制最终输出的顺序和数量

几个易忽略但关键的细节

  • SQL 关键字(如 SELECT、FROM)不区分大小写,但习惯大写更易读;字段名、表名通常小写
  • NULL 参与任何运算(+、=、>等)结果都是 NULL,判断空值要用 IS NULLIS NOT NULL,不能用 = NULL
  • LIKE 模糊匹配中,% 匹配任意长度字符,_ 只匹配单个字符,如 name LIKE 'Li%' 查姓李的所有人
  • 多表查询时,若字段名重复(如两个表都有 id),必须用 表名.字段名 明确指定,否则报错
text=ZqhQzanResources