基本查询语句 === 查询数据是 MySQL 中最常见的操作,而 `SELECT` 语句就是数据查询的核心。无论是查看整张表、筛选部分字段,还是按条件查找记录,几乎都离不开 `SELECT`。 ### SELECT语句的语法 `SELECT` 的基本语法如下: ```sql SELECT 字段列表 FROM 表名 [WHERE 条件]; ``` 其中: - `SELECT`:表示查询 - `字段列表`:表示要查哪些列 - `FROM`:表示从哪张表查询 - `WHERE`:表示查询条件,可选 例如: ```sql SELECT id, name, mobile FROM user; ``` ### 查询所有字段 如果要查看表中的全部字段,可以使用 `*`: ```sql SELECT * FROM user; ``` 这表示返回 `user` 表中的所有列。 这种写法很方便,但在实际业务中要注意: 1. 字段很多时会返回不必要的数据 2. 不利于接口字段控制 3. 某些场景会增加网络传输和读取成本 因此在正式业务 SQL 中,通常更推荐显式写出需要的字段。 ### 查询指定字段 如果只想查看部分列,可以把字段名写在 `SELECT` 后面,并用逗号分隔: ```sql SELECT id, name, mobile FROM user; ``` 也可以给字段起别名: ```sql SELECT id, name AS username, mobile AS phone FROM user; ``` 别名可以让结果更容易阅读,也适合报表展示和接口输出。 ### 查询指定记录 如果只想查询满足某个条件的记录,需要使用 `WHERE`: ```sql SELECT * FROM user WHERE id = 1; ``` 还可以使用多个条件: ```sql SELECT * FROM user WHERE age >= 18 AND city = '上海'; ``` `WHERE` 是查询中最核心的部分之一,常常与比较运算符、逻辑运算符、范围条件、模糊匹配一起使用。 ### 带IN关键字的查询 `IN` 用于匹配多个可能的值,语义上可以理解为“是否在这个集合中”。 示例: ```sql SELECT * FROM user WHERE city IN ('北京', '上海', '深圳'); ``` 这条语句表示查询城市为北京、上海或深圳的用户。 如果不用 `IN`,往往需要写成: ```sql SELECT * FROM user WHERE city = '北京' OR city = '上海' OR city = '深圳'; ``` 相比之下,`IN` 更简洁,也更容易阅读。 ### 带BETWEEN AND的范围查询 `BETWEEN ... AND ...` 用于查询某个范围内的值。 例如查询年龄在 18 到 30 之间的用户: ```sql SELECT * FROM user WHERE age BETWEEN 18 AND 30; ``` 也可以用于日期范围查询: ```sql SELECT * FROM orders WHERE created_at BETWEEN '2026-01-01' AND '2026-01-31 23:59:59'; ``` 它适合处理: - 数值范围 - 日期范围 - 连续编号区间 ### 带LIKE的字符匹配查询 `LIKE` 用于做字符串的模糊匹配。 常见通配符有: - `%`:匹配任意长度的任意字符 - `_`:匹配单个字符 例如: ```sql SELECT * FROM user WHERE name LIKE '张%'; ``` 表示查询姓名以“张”开头的记录。 再例如: ```sql SELECT * FROM article WHERE title LIKE '%MySQL%'; ``` 表示标题中只要包含 `MySQL` 就会被查询出来。 ### 小结 基础查询的核心就是 `SELECT + FROM + WHERE`。掌握查询全部字段、指定字段、条件查询、`IN`、`BETWEEN ... AND ...` 和 `LIKE` 之后,就已经能完成大部分常见单表查询。