尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SQL查询所有列:SELECT *里的星号管列,不管行
原题是牛客查询所有列。运营想查看用户信息表中的全部数据答案只有一行SELECT * FROM user_profile;这行 SQL 并不难。但如果把它记成“星号表示所有用户”下一题只取两列、只查一个学校时就容易分不清是谁控制什么。1. 先把表看成两个方向表有列也有行。列是每条记录包含哪些信息行是有哪些记录。选择哪些列 ------------ id device_id age ... ^ 1 2138 21 选择哪些行 | 2 3214 NULL v 3 6543 20SELECT后的列表决定返回哪些列FROM指定从哪里取WHERE决定留下哪些行。在这道单表题里*选择所有列。没有WHERE才是没有额外筛选行的原因。二者碰巧同时出现不代表是同一件事。2. 用完整数据跑一次下面是依照原题样例整理的可复现实验使用独立测试表不在业务数据库执行建表。CREATE TABLE user_profile ( id INTEGER PRIMARY KEY, device_id INTEGER, gender VARCHAR(10), age INTEGER, university VARCHAR(30), province VARCHAR(20) ); INSERT INTO user_profile (id, device_id, gender, age, university, province) VALUES (1, 2138, male, 21, 北京大学, Beijing), (2, 3214, male, NULL, 复旦大学, Shanghai), (3, 6543, female, 20, 北京大学, Beijing), (4, 2315, female, 23, 浙江大学, ZheJiang), (5, 5432, male, 25, 山东大学, Shandong);为了让本地输出便于逐行核对实验显式按唯一的id排序SELECT * FROM user_profile ORDER BY id;iddevice_idgenderageuniversityprovince12138male21北京大学Beijing23214maleNULL复旦大学Shanghai36543female20北京大学Beijing42315female23浙江大学ZheJiang55432male25山东大学Shandong原题没有排序要求最前面的一行答案即可。这里加ORDER BY是实验约定不能从一次没排序的输出推断数据库永远按插入顺序返回。第二行age是NULL这一行仍在结果里。查询全部记录不要求每个字段都有值也不会自动补零或去重。原笔记的运行结果保留如下它只代表当时平台提交不是本轮实验的截图3. 把列选择和行筛选分开试只要用户编号与学校但仍然取所有行SELECT device_id, university FROM user_profile ORDER BY id;仍是5行但只有2列。返回列的顺序就是这里写出的顺序。反过来保留所有列但只取北京大学的用户SELECT * FROM user_profile WHERE university 北京大学 ORDER BY id;现在是2行、6列对应id 1和id 3。所以“所有列”不等于“所有行”。再故意写一个没有匹配记录的条件SELECT * FROM user_profile WHERE id -1;结果是0行不是“有一行且所有值都是NULL”。客户端仍可获知这次查询的6个结果列结果结构与实际有几条记录是两个问题。4. 一个更实际的问题表加字段后星号会不会变先运行上面的查询再在测试表新增一个普通字段ALTER TABLE user_profile ADD COLUMN nickname VARCHAR(30);重新运行SELECT * FROM user_profile ORDER BY id;本地实验返回7列新增的nickname在已有行上为NULL。前面的显式两列查询仍然返回2列。变更前SELECT * - 6列 变更后SELECT * - 7列 变更后SELECT device_id, university - 2列这才是长期使用*值得注意的地方代码没有改结果结构却跟着表变了。例如调用方认为最后一列永远是province增加字段后这个约定就不成立了。按位置解包、CSV导出字段数、固定响应格式都可能受影响。临时排查、初学练习中*很方便长期接口只需要几个字段时明确写出字段更容易看出输出约定。它也不能代替授权和数据脱敏选列少不等于访问控制已经做好。这里的“全部”还有版本和表定义边界MySQL支持不可见列普通SELECT *不包含不可见列需要显式指定。上面的实验只新增普通列没有在SQLite中模拟MySQL的不可见列机制。见MySQL不可见列文档。也不能反过来背成“用了星号就一定慢”。是否多读了不需要的数据、是否能利用覆盖索引等要看具体查询和执行计划本文没有跑性能基准。5. 这篇怎么核对结果本地使用Python标准库的SQLite内存数据库直接执行本文SQL代码块而不是另写一份差不多的查询。核对原题5行6列、列名顺序、NULL保留、显式两列、筛选结果、空结果以及加字段后的6列变7列。还检查错误改写COUNT(*)得到的是一行统计值不是原表全部记录省掉FROM写SELECT *在该实验数据库中会报错。SQLite实验用于验证这些基础查询的结果结构不代表实测了MySQL的权限、排序规则、索引计划或不可见列。语法范围另外参照MySQL SELECT文档。这道题可以只交一行答案理解时却要保留两个方向先问要哪些列再问要哪些行。后面的查询题基本都在这两个方向上加条件。
RELATED

相关推荐

使用 Semgrep 检测 Android 应用中的非随机源(Non-random Sources):OWASP MASTG-DEMO-0008 实战指南

使用 Semgrep 检测 Android 应用中的非随机源(Non-random Sources):OWASP MASTG-DEMO-0008 实战指南

文档教程网络安全 【免费下载链接】mastg The OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security W…

📅 2026/10/6 12:10:43
Webots Supervisor 教程:用机器人上帝视角操控仿真世界(移动、生成、追踪与变色全实战)

Webots Supervisor 教程:用机器人上帝视角操控仿真世界(移动、生成、追踪与变色全实战)

科研自动驾驶物理引擎 【免费下载链接】webots Webots Robot Simulator 项目地址: https://gitcode.com/gh_mirrors/web/webots 点击查看 免费下载 Webots 中的 Supervisor 是一个"拥有特殊权限的机器人":它既能像普通 Robot 一样驱动设备、运…

📅 2026/10/6 12:10:43
docker-selenium 4.30.0 的 Edge 122 镜像发布实录:从版本探测到多级标签矩阵的完整机制解析

docker-selenium 4.30.0 的 Edge 122 镜像发布实录:从版本探测到多级标签矩阵的完整机制解析

测试后端云原生容器编排可观测性 【免费下载链接】docker-selenium Provides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale 项目地址: https://gitcode.…

📅 2026/10/6 12:10:43
MORE NEWS

更多资讯

📰

数字人直播频繁弹窗网络状态不佳?从网络诊断到推流优化全排查

最近不少使用安东星做数字人直播的朋友反馈同一个问题:打开客户端、准备开播或者推流的过程中,页面弹出“网络状态不佳”的提示,然后直播间画面卡住、素材加载失败、数字人无法正常驱动。这个提示本身没有给出详细的错误码,也没有…

📰

WinForms并发任务最佳实践:Parallel.For+SemaphoreSlim+Timer组合

做WinForms开发的人,迟早会碰到这么一类需求:界面上点一个按钮,后台要处理大批量数据,界面不能卡死,进度还得实时可见。我以前接手过一个导入工具,数据量小的时候一切正常,量一大就出现两个问题…

📰

深度实测:如何将论文AIGC检测率从99.8%降至6.7%

2026年3月,我把自己熬了四个多月的论文初稿第一次送进AIGC检测系统,页面加载完的那一刻我盯着屏幕上的数字愣了很久:99.8%。也就是说,在系统眼里,这篇论文几乎没有一个句子像是人写的。接下来的两周,我一边…

📰

产线级实时SPC系统设计与实现:从Modbus采集到控制图告警

简介:本资源是一套面向高校自动化、工业工程及质量管理专业学生的毕业设计项目,聚焦于统计过程控制(SPC)在制造业质量监控中的落地实践,旨在帮助学习者构建具备数据采集、实时分析、可视化预警能力的在线质量分析系统。…

📰

U盘系统盘制作全指南:镜像选择、工具对比与引导兼容

做系统盘这件事,听起来好像只属于电脑修理店和装机老手,但你真碰到一次电脑无法启动,或者 C 盘已经爆红到只剩几百兆,就知道手里有一张靠谱的系统安装盘有多重要。这篇文章想聊的,就是怎么从零开始把 U 盘制作成能装系…

📰

逻辑回归鸢尾花分类实战:训练、评估与避坑指南

简介:这是一份基于Python语言实现逻辑回归鸢尾花分类的机器学习大作业资源,面向期末大作业、课程设计或初学者入门实践场景。资源包含带详细注释的完整项目源码、实验报告及文档说明,覆盖数据加载、特征处理、模型训练、分类评估等关键环节&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬