直接用 SELECT * FROM 表名; 就能查出表中所有数据,但要注意实际使用中需结合具体场景控制范围,避免性能问题或敏感信息泄露。
基础语法:查全部数据
最简单的全量查询写法是:
SELECT * FROM users; —— 查询 users 表所有字段、所有行 星号(*)代表“所有列”,MySQL 会按建表顺序返回字段 不加 WHERE 条件时,默认返回全部记录,无隐式排序,结果顺序不确定常用搭配:让查询更实用
纯 SELECT * 在开发调试时方便,但正式环境建议加上限制或排序:
加 LIMIT 控制返回条数:例如 SELECT * FROM logs LIMIT 100; 防止一次性拉取几百万行卡住客户端 加 ORDER BY 明确顺序:例如 SELECT * FROM products ORDER BY created_at DESC LIMIT 20; 查最新20条商品 加 WHERE 筛选后查全部字段:例如 SELECT * FROM orders WHERE status = 'paid';注意事项:别踩这些坑
看似简单,实际容易忽略关键细节:
大表慎用 SELECT *:字段多、数据量大时,网络传输和内存消耗明显增加 字段顺序依赖建表语句,如果表结构变更(如新增列),应用层代码可能因列序错位出错 包含 TEXT/BLOB 类型字段时,即使只显示前几行,MySQL 仍会加载完整值,影响效率 权限不足时,即使写了 SELECT *,也会报错——确保账号有对应表的 SELECT 权限替代建议:更稳妥的写法
生产环境推荐明确列出所需字段:
例如:SELECT id, name, email, updated_at FROM users WHERE active = 1; 好处:减少数据传输、提升可读性、避免因表结构变更导致程序异常 配合 EXPLAIN 可分析执行计划,确认是否走索引