SELECT * 到底能不能用?新手第一个坑

简介: 拆解“SQL学会SELECT *就够了”的误区,详解其原理、初学爽感与三大隐患(性能崩塌、列序失控、资源浪费),并指出仅限探索/排查等有限场景可用。真进阶在于懂学会何时不用它!

别信“SQL学会这一句就够了”,这句话害了不少人。

大家好,我是这个DBA不太耶。

上次聊了数据库和Excel的区别,有朋友说:“你倒是教点实在的啊,我连SQL长啥样都不知道。”

行,今天就讲最基础的一个命令:SELECT *

一、SELECT * 是干嘛的?

说白了:​把这张表里所有的列、所有的行,全端出来​。

  • SELECT = 我要查
  • * = 所有列(星号是通配符)
  • FROM 表名 = 从哪张表

所以 SELECT * FROM orders; 就是把订单表里每一列、每一行全部显示。

这是SQL里最简单的命令,没有之一。新手教程第一课几乎都是它。

二、第一次执行,确实爽

我刚接触数据库时,IT给我一个测试库说,你先看看订单表长什么样。

我打开客户端,照着教程敲了:

sql

SELECT * FROM orders;

执行。

一万行数据,两秒钟刷出来,滚动丝般顺滑。那一刻我突然理解了什么叫“数据库不是Excel”。Excel到一万行早就在转圈了,这边一万行只是热身。

那一刻你会觉得:数据库真牛,SQL真简单。

但如果你以为这就是SQL的全部,那后面有的是坑等着你。

三、为什么说它是个坑?

坑1:数据量大了会炸

假设一张表有100列、1000万行。你执行 SELECT *,相当于一次性把所有数据全拉出来。网络带宽扛不住,你的客户端可能直接内存溢出,甚至把数据库服务器拖慢。

正确做法:​只查你需要的列​。

-- 别这样
SELECT * FROM orders;

-- 要这样
SELECT order_id, customer_name, order_date FROM orders;

坑2:列顺序不可控

SELECT * 返回的列顺序是表定义的顺序。如果你的代码里写死了“第一列是订单号”,哪天表结构调整了(比如加了一列),列顺序一变,程序直接报错。

坑3:性能浪费

哪怕你只想看前10行,数据库也得先把所有列的数据加载出来。尤其是那些带 TEXTBLOB 大字段的表,纯粹浪费IO和内存。

四、什么时候可以用 SELECT *?

不是完全不能用,但只限几个场景:

  1. 探索性查询​:刚接触一张新表,不知道有哪些列,先 SELECT * 看一眼数据结构。
  2. 临时排查问题​:快速确认某条记录的所有字段值。
  3. 测试环境​:数据量小,怎么折腾都行。

生产环境、正式脚本、性能要求高的地方,千万别这么干。

五、一个口诀帮你记住

平时随便用,​生产要慎重​。

查啥写啥列,​星号是懒虫​。

六、说句大实话

SELECT * 是新手村的第一把木剑——能砍怪,但别指望它屠龙。

学会它是第一步。学会​什么时候不用它​,才是真正的进阶。

大家第一次执行 SELECT * 查了多少行数据?有没有干过SELECT * 然后把电脑卡死的蠢事哈哈哈~

相关文章
|
5月前
|
SQL 关系型数据库 MySQL
5款好用的免费MySQL客户端,新手必备!
告别枯燥命令行!数据库小学妹精选5款免费MySQL图形化工具:Workbench(官方全能)、phpMyAdmin(免安装Web版)、DBeaver(多库支持)、HeidiSQL(Windows轻量之选)、TablePlus(高颜值跨平台)。小白友好,语法高亮、自动补全、可视化结构一应俱全,助你高效学SQL!
|
关系型数据库 MySQL
Mysql连接无效(invalid connection)解决方案
Mysql连接无效(invalid connection)解决方案
2084 0
Mysql连接无效(invalid connection)解决方案
|
5月前
|
SQL 关系型数据库 MySQL
数据量大查询慢?索引让你的SQL秒级响应!|转行学DB第9天
用生活化比喻(如字典目录)详解索引原理:它通过B+树结构加速查询,避免全表扫描;涵盖创建、查看、删除索引方法,联合索引的最左前缀原则,以及读写平衡等实战要点——让查询从“等几秒”变“秒出”!
数据量大查询慢?索引让你的SQL秒级响应!|转行学DB第9天
|
5月前
|
SQL 关系型数据库 MySQL
事务:让数据操作"要么全成功,要么全失败"!|转行学DB第10天
数据库小学妹带你轻松掌握事务!转账不丢钱、数据不混乱的秘密,就在ACID四大特性——原子性(全做或全不做)、一致性、隔离性、持久性。用START TRANSACTION开启,COMMIT提交,ROLLBACK回滚,保障多步操作安全可靠。
|
5月前
|
SQL 关系型数据库 MySQL
子查询:让SQL像俄罗斯套娃一样嵌套!|转行学DB第8天
数据库小学妹带你轻松入门子查询!用“SELECT里套SELECT”,像俄罗斯套娃一样,一步解决“先算平均分、再查高分学生”等两步难题。支持WHERE(条件筛选)、FROM(临时表)、SELECT(标量列)三种用法,简洁直观,新手友好~
|
30天前
|
SQL 人工智能 自然语言处理
企业有了 AI 助手,为什么打工人还这么累
阿里云AIDBS是企业级AI原生数据库服务,聚焦“推进工作”而非仅“解决问题”。通过Meta Agent理解业务语义、Agent数据网关管控权限与安全、cc-stand协作工具打通钉钉/飞书,让AI在身份、数据、上下文和责任边界内真正参与完整工作流——分析、执行、协同、跟踪,人始终掌控判断与责任。
92 0
|
5月前
|
SQL NoSQL 关系型数据库
数据库分类一次讲清|转行学DB第2天
数据库小学妹(UI转行萌新)用通俗语言拆解数据库分类:从关系型(MySQL/Oracle)、NoSQL(Redis/MongoDB/Cassandra)、NewSQL(TiDB)到2026年爆火的向量数据库(Pinecone/Milvus),按数据模型、部署架构、业务负载三大维度梳理,配场景化案例与选学路径,助新手轻松入门。
|
5月前
|
SQL 人工智能 安全
AI圈开始“养马”了?聊聊龙虾退位、爱马仕登基
AI智能体“龙虾”(OpenClaw)的衰落与“爱马仕”(Hermes Agent)的崛起:前者因API限策与高危漏洞(CVSS 9.9)式微;后者以持久记忆、技能自生成、跨平台互通等实用能力破圈,成技术圈新“拐杖”。但技术无银弹,懂你的工具才是真助力。
|
5月前
|
SQL 数据库 数据库管理
从运营到DBA,我用了这3个“偷懒”方法学SQL
用运营人思维教小白轻松学SQL:①把SQL当Excel对话,理解SELECT/FROM/WHERE;②建“报错翻译本”,快速定位解决错误;③用“填空题法”抄改练,复用模板上手。不求完美,先跑通、看懂、不崩溃!
从运营到DBA,我用了这3个“偷懒”方法学SQL

热门文章

最新文章