当前位置: 首页 > news >正文

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 教程 一】任务结构体及其基础创建使用

目录 一、任务与协程的区别&#xff1a; &#xff08;1&#xff09;任务的特点&#xff1a; &#xff08;2&#xff09;协程的特点&#xff1a; &#xff08;3&#xff09;总结&#xff1a; 二、任务概述 &#xff1a; &#xff08;1&#xff09;任务状态&#xff1a; &…...

深入剖析 JVM 内存模型

前言&#xff1a; 下面分别介绍了新生代和老年代的不同收集器及其相关子类型&#xff0c;并附有示例代码和说明&#xff0c;感兴趣的朋友可以参考一下。 简介&#xff1a; 在 Java 虚拟机&#xff08;JVM&#xff09;的世界里&#xff0c;内存模型是其核心架构之一&#xff0…...

解决DeepSeek-R1模型在Cursor中使用报错的问题

在使用Cursor时&#xff0c;如果你尝试调用DeepSeek-R1模型&#xff0c;可能会遇到以下报错信息&#xff1a; {"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 已经发布&#xff0c;ASP.NET Core 6.0 也已发布。其中有不少变化让很多人感到困惑。例如&#xff0c;“谁动了我的奶酪”&#xff0c;它在哪里Startup.cs&#xff1f;在这篇文章中&#xff0c;我将深入研究这个问题&#xff0c;看看它移动到了哪里以及其他变化。…...

Java如何向http/https接口发出请求

用Java发送web请求所用到的包都在java.net下&#xff0c;在具体使用时可以用如下代码&#xff0c;你可以把它封装成一个工具类 import javax.net.ssl.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Outpu…...

数据分析 变异系数

目录 变异系数的应用场景包括&#xff1a; 特点&#xff1a; 注意事项&#xff1a; np.nanvar——方差&#xff0c;np.sanstd标准差 简单来讲就是平均值/标准差 变异系数&#xff08;Coefficient of Variation, CV&#xff09;是一种相对量的变异指标&#xff0c;常用于衡…...

利用免费GIS工具箱实现高斯泼溅切片,将 PLY 格式转换为 3dtiles

在地理信息系统&#xff08;GIS&#xff09;和三维数据处理领域&#xff0c;不同数据格式有其独特应用场景与优势。PLY&#xff08;Polygon File Format&#xff09;格式常用于存储多边形网格数据&#xff0c;而 3DTiles 格式在 Web 端三维场景展示等方面表现出色。将 PLY 格式…...

面试-二维数组

应用 快递业务有N个站点&#xff0c;1<N<10000&#xff1b;站点0、站点1可达&#xff0c;记作0-1&#xff1b;如果0-1、1-2&#xff0c;则站点0、站点2可达&#xff0c;记作0-2&#xff1b;s[i][j]1表示i-j可达&#xff0c;反之s[i][j]0表示i-j不可达&#xff1b;s[i][j…...

如何使用 findIndex() 方法查找数组中的第一个匹配元素的索引?

使用 findIndex() 方法查找数组中第一个匹配元素的索引 目录 简介findIndex() 方法概述如何使用 findIndex() 查找第一个匹配元素的索引 基本用法使用箭头函数和回调函数 实际项目中的代码示例 示例 1&#xff1a;查找第一个符合条件的用户索引示例 2&#xff1a;查找第一个符…...

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&#xff0c;但是&#xff0c;把一下配置放在password的配置第一行才会生效 执行命令&#xff1a;配置口令要求&#xff1a;大小写字母、数字、特殊字符组合、至少8位&#xff0c;包括强制设置root口令&#xff01; sed -i 14a pas…...

从工厂到桌面:3D打印制造潮玩手办

传统潮玩手办的制造过程复杂且成本高昂。从设计到成品&#xff0c;需要经过多道工序&#xff0c;包括手工建模、模具制作、注塑成型等。这一过程不仅耗时耗力&#xff0c;而且难以满足消费者日益增长的个性化需求。此外&#xff0c;传统制造方式对于小批量生产或定制化产品的经…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...