MySQL可直接使用的查询表的列信息
文章目录
- 背景
- 实现方案
- 模板SQL
- 如何查询列
- 如何转大写
- 如何获取字符位置
- 如何拼接字段
- SQL适用场景
背景
最近产品找来,想让帮忙出下表的信息,字段驼峰展示,每张表信息show create table全部展示,再逐个粘贴,有点太耗费时间,本篇记录快速方法,方便备查。
实现方案
第一步、确定下划线【_】的位置,可使用LOCATE函数;
第二步、找到下划线后第一个字符;
第三步、各个区域截取【下划线前的字符+下划线后的第一位要大写+剩余字符串小写】,使用CONCAT拼接。
实现效果如下所示。

模板SQL
可直接使用的模板SQL,只需要将【tb_order】改成所要统计的表即可,如下所示
SELECT COLUMN_NAME AS `数据元素`,LOCATE('_', COLUMN_NAME, 1) + 1 AS `下划线第一个位置`,UCASE(SUBSTRING(COLUMN_NAME,LOCATE('_', COLUMN_NAME, 1) + 1,1)) AS `下划线第一个位置的字母`,CASEWHENLOCATE('_', COLUMN_NAME, 1) != 0THENCONCAT(LOWER(SUBSTRING(COLUMN_NAME,1,LOCATE('_', COLUMN_NAME, 1) - 1)),UCASE(SUBSTRING(COLUMN_NAME,LOCATE('_', COLUMN_NAME, 1) + 1,1)),LOWER(SUBSTRING(COLUMN_NAME,LOCATE('_', COLUMN_NAME, 1) + 2,LENGTH(COLUMN_NAME))))ELSE COLUMN_NAMEEND AS `驼峰展示`,data_type AS `数据类型`,CASEWHEN IS_NULLABLE = 'YES' THEN '必填'ELSE '非必填'END AS `是否必填`,column_comment AS `描述`
FROMinformation_schema.COLUMNS
WHERETABLE_NAME = 'tb_order';
如何查询列
可从MySQL的系统表information_schema.COLUMNS,直接查询目标表的信息,主要如下所示。
SELECT COLUMN_NAME AS `数据元素`,data_type AS `数据类型`,CASEWHEN IS_NULLABLE = 'YES' THEN '必填'ELSE '非必填'END AS `是否必填`,column_comment AS `描述`
FROMinformation_schema.COLUMNS
WHERETABLE_NAME = 'tb_order';
执行SQL,控制台如下所示。

如何转大写
MySQL中字符转大写,可使用 UCASE函数,字符转小写 可使用LOWER函数。
SELECT COLUMN_NAME AS `数据元素`,UCASE(data_type) AS `数据类型-大写`,LOWER(data_type) AS `数据类型-小写`,CASEWHEN IS_NULLABLE = 'YES' THEN '必填'ELSE '非必填'END AS `是否必填`,column_comment AS `描述`
FROMinformation_schema.COLUMNS
WHERETABLE_NAME = 'tb_order';
执行SQL,控制台如下所示。

如何获取字符位置
获取字符串中指定字符位置,可使用LOCATE函数。
LOCATE(sub_str, str,length)
sub_str 表示待匹配的子串
str 表示匹配的目标字符串
length 表示匹配的长度
SELECT COLUMN_NAME AS `数据元素`,LOCATE('_',COLUMN_NAME,1)+1 as `下划线第一个位置`,UCASE(SUBSTRING(COLUMN_NAME,LOCATE('_',COLUMN_NAME,1)+1,1)) AS `下划线第一个位置的字母`,data_type AS `数据类型`,CASEWHEN IS_NULLABLE = 'YES' THEN '必填'ELSE '非必填'END AS `是否必填`,column_comment AS `描述`
FROMinformation_schema.COLUMNS
WHERETABLE_NAME = 'tb_order';
执行SQL,控制台如下所示。

如何拼接字段
使用CONCAT函数连接各部分子字符串。
SELECT COLUMN_NAME AS `数据元素`,LOCATE('_', COLUMN_NAME, 1) + 1 AS `下划线第一个位置`,UCASE(SUBSTRING(COLUMN_NAME,LOCATE('_', COLUMN_NAME, 1) + 1,1)) AS `下划线第一个位置的字母`,CASEWHENLOCATE('_', COLUMN_NAME, 1) != 0THENCONCAT(LOWER(SUBSTRING(COLUMN_NAME,1,LOCATE('_', COLUMN_NAME, 1) - 1)),UCASE(SUBSTRING(COLUMN_NAME,LOCATE('_', COLUMN_NAME, 1) + 1,1)),LOWER(SUBSTRING(COLUMN_NAME,LOCATE('_', COLUMN_NAME, 1) + 2,LENGTH(COLUMN_NAME))))ELSE COLUMN_NAMEEND AS `驼峰展示`,data_type AS `数据类型`,CASEWHEN IS_NULLABLE = 'YES' THEN '必填'ELSE '非必填'END AS `是否必填`,column_comment AS `描述`
FROMinformation_schema.COLUMNS
WHERETABLE_NAME = 'tb_order';
执行SQL,控制台如下所示。

以上即SQL方式统计列信息的实现方案。
SQL适用场景
1、最多两个字符,通过下划线作为连接符,对于多个下划线的情况,case when 单独处理
相关文章:
MySQL可直接使用的查询表的列信息
文章目录 背景实现方案模板SQL如何查询列如何转大写如何获取字符位置如何拼接字段 SQL适用场景 背景 最近产品找来,想让帮忙出下表的信息,字段驼峰展示,每张表信息show create table全部展示,再逐个粘贴,有点太耗费时…...
在线宠物用品|基于vue的在线宠物用品交易网站(源码+数据库+文档)
|在线宠物用品交易网站 目录 基于springbootvue的在线宠物用品交易网站 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&am…...
《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: 《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风…...
使用LabVIEW的History功能实现队列数据的读取而不清空
在LabVIEW中,有多种方法可以读取队列中的数据而不清空它。使用 Dequeue Element 和 Enqueue Element 函数可以实现读取并重新插入数据回队列,但当需要处理大数据流或需要更动态的解决方案时,这种方法可能会变得繁琐。一个更高效的解决方案是利…...
电脑如何访问手机文件?
手机和电脑已经深深融入了我们的日常生活,无时无刻不在为我们提供服务。除了电脑远程操控电脑外,我们还可以在电脑上轻松地访问Android或iPhone手机上的文件。那么,如何使用电脑远程访问手机上的文件呢? 如何使用电脑访问手机文件…...
SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用
SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用 文章目录 SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用一. 使用SpringBoot自带的定时任务(适用于小型应用)二. 使用调度框架…...
java上传图片功能实现
1 MinIO核心概念 下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。 对象(Object) 对象是实际的数据单元,例如我们上传的一个图片。 存储桶(Bucket) 存储桶是用于组织对象的命…...
73,【5】BUUCTF WEB [网鼎杯 2020 玄武组]SSRFMe(未解出)
进入靶场 又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码 <?php // 检查 URL 是否为内部 IP 地址 function check_inner_ip($url) {// 使用正则表达式检查 URL 格式是否以 http、https、gopher 或 d…...
【FreeRTOS 教程 一】任务结构体及其基础创建使用
目录 一、任务与协程的区别: (1)任务的特点: (2)协程的特点: (3)总结: 二、任务概述 : (1)任务状态: &…...
深入剖析 JVM 内存模型
前言: 下面分别介绍了新生代和老年代的不同收集器及其相关子类型,并附有示例代码和说明,感兴趣的朋友可以参考一下。 简介: 在 Java 虚拟机(JVM)的世界里,内存模型是其核心架构之一࿰…...
解决DeepSeek-R1模型在Cursor中使用报错的问题
在使用Cursor时,如果你尝试调用DeepSeek-R1模型,可能会遇到以下报错信息: {"error": {"message": "deepseek-reasoner does not support successive user or assistant messages (messages[1] and messages[2] in …...
ASP.NET Core 6.0 如何处理丢失的 Startup.cs 文件
介绍 .NET 6.0 已经发布,ASP.NET Core 6.0 也已发布。其中有不少变化让很多人感到困惑。例如,“谁动了我的奶酪”,它在哪里Startup.cs?在这篇文章中,我将深入研究这个问题,看看它移动到了哪里以及其他变化。…...
Java如何向http/https接口发出请求
用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一个工具类 import javax.net.ssl.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Outpu…...
数据分析 变异系数
目录 变异系数的应用场景包括: 特点: 注意事项: np.nanvar——方差,np.sanstd标准差 简单来讲就是平均值/标准差 变异系数(Coefficient of Variation, CV)是一种相对量的变异指标,常用于衡…...
利用免费GIS工具箱实现高斯泼溅切片,将 PLY 格式转换为 3dtiles
在地理信息系统(GIS)和三维数据处理领域,不同数据格式有其独特应用场景与优势。PLY(Polygon File Format)格式常用于存储多边形网格数据,而 3DTiles 格式在 Web 端三维场景展示等方面表现出色。将 PLY 格式…...
面试-二维数组
应用 快递业务有N个站点,1<N<10000;站点0、站点1可达,记作0-1;如果0-1、1-2,则站点0、站点2可达,记作0-2;s[i][j]1表示i-j可达,反之s[i][j]0表示i-j不可达;s[i][j…...
如何使用 findIndex() 方法查找数组中的第一个匹配元素的索引?
使用 findIndex() 方法查找数组中第一个匹配元素的索引 目录 简介findIndex() 方法概述如何使用 findIndex() 查找第一个匹配元素的索引 基本用法使用箭头函数和回调函数 实际项目中的代码示例 示例 1:查找第一个符合条件的用户索引示例 2:查找第一个符…...
5. 马科维茨资产组合模型+政策意图AI金融智能体(Qwen-Max)增强方案(理论+Python实战)
目录 0. 承前1. AI金融智能体1.1 What is AI金融智能体1.2 Why is AI金融智能体1.3 How to AI金融智能体 2. 数据要素&计算流程2.1 参数集设置2.2 数据获取&预处理2.3 收益率计算2.4 因子构建与预期收益率计算2.5 协方差矩阵计算2.6 投资组合优化2.7 持仓筛选2.8 AI金融…...
Centos类型服务器等保测评整/etc/pam.d/system-auth
修改服务器配置文件/etc/pam.d/system-auth,但是,把一下配置放在password的配置第一行才会生效 执行命令:配置口令要求:大小写字母、数字、特殊字符组合、至少8位,包括强制设置root口令! sed -i 14a pas…...
从工厂到桌面:3D打印制造潮玩手办
传统潮玩手办的制造过程复杂且成本高昂。从设计到成品,需要经过多道工序,包括手工建模、模具制作、注塑成型等。这一过程不仅耗时耗力,而且难以满足消费者日益增长的个性化需求。此外,传统制造方式对于小批量生产或定制化产品的经…...
Claude Code 之父:AI 的改变不止于代码,程序员需要改变整个工作流
高水平工程劳动,正在离开手写代码。编译 | 王启隆出品丨AI 科技大本营(ID:rgznai100)这两天,Claude Code 以一种多少有点尴尬的方式被更多人看见了。不是因为新模型发布,也不是因为哪场演示太惊艳ÿ…...
别再傻傻用IP了!用Kali+SET克隆真实网站的完整避坑指南
KaliSET钓鱼网站进阶实战:从克隆到高仿的避坑指南 在网络安全测试中,钓鱼网站的真实性直接决定了测试效果。很多初学者止步于简单的IP访问和基础模板克隆,却忽略了细节打磨的重要性。本文将带你突破基础操作,实现从"一眼假&q…...
Vibe Coding 有哪些实用技巧?这篇文章讲透工作流、提示词和避坑方法
Vibe Coding 是什么?一篇讲清它的技巧、工作流与避坑方法 这两年,AI 编程工具越来越强,很多开发者开始用自然语言驱动代码生成。围绕这种开发方式,一个很火的词出现了:Vibe Coding。 简单说,Vibe Coding 就…...
Hollander Techniek借助Visual Components仿真平台,打造自动化食品包装系统
荷兰即食餐食供应商Uitgekookt(以下简称Uitgekookt)计划对其餐食包装流程进行自动化改造,亟需一套能高效、精准处理定制订单的系统。荷兰食品包装自动化集成商HT(以下简称HT)在实际搭建前,运用Visual Compo…...
告别重复打卡:远程办公族的智能签到自动化解决方案
告别重复打卡:远程办公族的智能签到自动化解决方案 【免费下载链接】daily-check-in 一个打卡小程序 - 基于 leancloud 数据存储 项目地址: https://gitcode.com/gh_mirrors/da/daily-check-in 在数字化办公普及的今天,远程办公族每天需在项目管…...
从“链表长度”到“游戏对象池”:用C++ std::list的size()函数设计一个简单的内存管理Demo
从链表长度到游戏对象池:用C std::list设计高效内存管理方案 在游戏开发中,频繁创建和销毁对象会导致内存碎片化与性能下降。想象一个2D射击游戏场景:玩家发射的子弹、随机生成的敌人都需要动态管理。传统new/delete直接操作内存的方式在这种…...
PvZ Toolkit:3步解锁植物大战僵尸终极游戏增强工具,打造完全自定义体验
PvZ Toolkit:3步解锁植物大战僵尸终极游戏增强工具,打造完全自定义体验 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 还在为植物大战僵尸的传统玩法感到乏味吗?…...
告别密码!用SecureCRT+SSH密钥3分钟搞定Linux服务器安全登录
SecureCRT与SSH密钥:3分钟打造企业级Linux服务器安全登录方案 每次输入冗长密码连接服务器的繁琐操作,正在成为过去式。想象一下,当你凌晨三点紧急处理线上故障时,不再需要反复核对密码本或等待二次验证码——只需轻轻一点&#x…...
告别重复劳动:用快马ai编程自动生成表单验证工具,效率翻倍
最近在开发一个用户注册系统时,发现表单验证这块特别耗费时间。每次都要重复写各种正则表达式,还要考虑各种边界情况,效率实在太低。于是我开始寻找能提升效率的解决方案,最终在InsCode(快马)平台上找到了理想的工具。 表单验证的…...
Notepad++ 式轻量开发体验:在PyTorch 2.8容器内配置高效命令行环境
Notepad 式轻量开发体验:在PyTorch 2.8容器内配置高效命令行环境 1. 为什么选择轻量级开发环境? 对于习惯了Notepad这类轻量编辑器的开发者来说,重型IDE往往显得臃肿且启动缓慢。特别是在云端深度学习开发场景中,PyTorch容器环境…...
