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 单独处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/67888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu扩展swap交换分区

查看当前交换分区 free -htotal used free shared buff/cache available Mem: 31Gi 16Gi 11Gi 1.0Gi 3.0Gi 12Gi Swap: 2.0Gi 2.0Gi 37Mi关闭当前swap分区 sudo swapoff /swapfile创建…

HMV Challenges 022 Writeup

题目地址:https://hackmyvm.eu/challenges/challenge.php?c022 首先猜测是否为图片隐写,无果 盲猜图片上的小鸟是某种带符号的隐写 去这个网站找找看:https://www.dcode.fr/chiffres-symboles 找到了 参照原图片鸟儿的姿态选择并排放 所…

不建模,无代码,如何构建一个3D虚拟展厅?

在数字化浪潮的推动下,众多企业正积极探索线上3D虚拟展厅这一新型展示平台,旨在以更加生动、直观的方式呈现其产品、环境与综合实力。然而,构建一个既专业又吸引人的3D虚拟展厅并非易事,它不仅需要深厚的技术支持,还需…

【真机调试】前端开发:移动端特殊手机型号有问题,如何在电脑上进行调试?

目录 前言一、怎么设置成开发者模式?二、真机调试基本步骤? 🚀写在最后 前言 edge浏览器 edge://inspect/#devices 谷歌浏览器(开tizi) chrome://inspect 一、怎么设置成开发者模式? Android 设备 打开设…

企业分类相似度筛选实战:基于规则与向量方法的对比分析

文章目录 企业表相似类别筛选实战项目背景介绍效果展示基于规则的效果基于向量相似的效果 说明相关文章推荐 企业表相似类别筛选实战 项目背景 在当下RAG(检索增强生成)技术应用不断发展的背景下,掌握文本相似算法不仅能够助力信息检索&…

redis热Key问题

文章目录 一、定位 Redis 热 Key 问题二、解决 Redis 热 Key 问题 什么是热Key呢?在Redis中,我们把访问频率高的key,称为热点key。 如果某一热点key的请求到服务器主机时,由于请求量特别大,可能会导致主机资源不足&…

跨域cookie携带问题总结

背景 我们知道很多场景,都需要前端请求带上cookie,例如用户鉴权、登陆校验等。而有些场景下,我们会发现请求不会带上cookie,这是为什么呢? 概念 cookie是种在域名下的信息。只有请求同域且同站的请求,才…

校园网上店铺的设计与实现(代码+数据库+LW)

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统校园店铺商品销售信息管理难度大,容错率低&a…

基于springboot+vue的校园二手物品交易系统的设计与实现

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

编译Android平台使用的FFmpeg库

目录 前言 一、编译环境 二、搭建环境 1.安装MSYS2 2.更新系统包 2.1 打开MSYS2 MinGW 64-bit终端(mingw64.exe) 2.2 更新所有软件包到最新版本 2.3 安装必要的工具和库。 3. 克隆FFmpeg源码 4. 配置编译选项 5. 执行编译 总结 前言 记录学习…

vim如何显示行号

:set nu 显示行号 :set nonu 不显示行号

揭开C++ 继承 的神秘面纱:深度剖析 类 的“血脉”传承

在C的面向对象编程中,继承(Inheritance)是实现代码复用和层次结构的重要特性。通过继承,新的类(派生类)可以从现有的类(基类)中继承属性和行为,从而减少重复代码&#xf…

翻译:How do I reset my FPGA?

文章目录 背景翻译:How do I reset my FPGA?1、Understanding the flip-flop reset behavior2、Reset methodology3、Use appropriate resets to maximize utilization4、Many options5、About the author 背景 在写博客《复位信号的同步与释放(同步复…

无序向量唯一化算法

最坏情况下需要 Ω ( n 2 ) \Omega(n^2) Ω(n2) 时间&#xff0c;最好情况下仅需 O ( n ) O(n) O(n) 时间。 删除无序向量中的重复元素 template <typename T> Rank Vector<T>::dedup(){Rank oldSize_size;//原来的规模for(Rank i1;i<_size;)//从前往后枚举…

基于微信小程序的设备故障报修管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

ue5 GAS制作一个技能

新建文件夹 ability 取名BP_BaseAbility 新建一个技能GAB_Melee 上面技能GAB_Melee和技能基类BP_BaseAbility 进入技能GAB_Melee&#xff0c;添加打印火云掌 给这个技能添加标签 点这个号 这样命名&#xff0c;小心这个点&#xff08;.&#xff09;作为分割 ability.ha…

PHP校园助手系统小程序

&#x1f511; 校园助手系统 —— 智慧校园生活 &#x1f4f1;一款基于ThinkPHPUniapp框架深度定制的校园助手系统&#xff0c;犹如一把智慧之钥&#xff0c;专为校园团队精心打造&#xff0c;解锁智慧校园生活的无限精彩。它独家适配微信小程序&#xff0c;无需繁琐的下载与安…

Java数组Arrays.sort自定义排序

Java数组Arrays.sort自定义排序 1、从小到大排序2、从大到小排序 1、从小到大排序 通过Array.sort便可以实现对int[]或Integer[]数组进行排序 int[] nums new int[]{-1,3,-2,0}; Arrays.sort(nums);2、从大到小排序 由于<T>只能是封装类&#xff0c;因此只能对Intege…

阿里云服务器突然有大量nmap服务占用大量CPU排查及解决方案

问题描述 突然有一天服务器访问很卡顿,在阿里云后台查看CPU,内存,系统平均负载等参数发现没问题 但是登陆服务器后,发现大量nmap服务占用大量CPU,但是这台管理员并没有主动安装过nmap 原因及对应预防方案 暴力破解 SSH 密码&#xff1a;通过爆破弱密码或没有加固的 SSH 配置。…

一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk

文章目录 一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. 啥是chunkIds3.怎么使用chunkIds4. 啥是runtimeChunk5. 怎么使用runtimeChunk 一文大白话讲清楚webpack基本使用——11——chun…