如何在mysql中查询全部数据_select星号使用说明

来源:这里教程网 时间:2026-02-28 20:45:37 作者:

直接用 SELECT * 就能查出表里全部数据,但不是所有情况都适合这么写。

星号在 SELECT 中的作用

星号(*)是通配符,代表“当前表中所有字段”。执行

SELECT * FROM users;
时,MySQL 会返回
users
表定义里的全部列,顺序按建表时的字段顺序排列。

语法简洁,适合快速查看表结构或调试时临时使用 不依赖你是否记得具体字段名,省去手动罗列的步骤 注意:它查的是“物理定义的所有列”,包括你可能根本不需要的字段(比如大文本、二进制、冗余日志字段)

带条件查全部字段

星号可以和 WHERE 配合,只取满足条件的完整行:

SELECT * FROM products WHERE status = 'on_sale';
SELECT * FROM orders WHERE created_at >= '2025-12-01';
字符串值必须用单引号包裹,日期格式推荐
'YYYY-MM-DD'
或完整时间戳

为什么生产环境要慎用 *

看似方便,实际容易带来三类问题:

性能损耗:多查了不用的字段(如
description TEXT
),增加磁盘 I/O、网络传输和内存占用
耦合风险:表结构一旦新增或重排字段,应用层接收到的列顺序/数量可能意外变化,引发解析错误 安全隐忧:可能无意中暴露敏感字段(如
password_hash
id_card
),尤其在 API 直接透出查询结果时

更稳妥的替代做法

明确写出需要的字段,哪怕看起来多打几个字:

查用户基本信息:
SELECT id, username, email, created_at FROM users;
配合排序分页获取最新几条:
SELECT title, author, publish_time FROM articles ORDER BY publish_time DESC LIMIT 10;
不确定字段名?先用
DESC users;
SHOW COLUMNS FROM users;
看结构

相关推荐