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

MySQL可直接使用的查询表的列信息

文章目录

  • 背景
  • 实现方案
    • 如何查询列
    • 如何转大写
    • 如何获取字符位置
    • 如何拼接字段

背景

最近产品找来,想让帮忙出下表的信息,字段驼峰展示,每张表信息show create table全部展示,再逐个粘贴,有点太耗费时间,本篇记录快速方法,方便备查。

实现方案

第一步、确定下划线【_】的位置,可使用LOCATE函数;
第二步、找到下划线后第一个字符;
第三步、各个区域截取【下划线前的字符+下划线后的第一位要大写+剩余字符串小写】,使用CONCAT拼接。
实现效果如下所示。
在这里插入图片描述

如何查询列

可从MySQL的系统表information_schema.COLUMNS,直接查询目标表的信息,主要如下所示。

SELECT 
    COLUMN_NAME  AS `数据元素`,
    data_type AS `数据类型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

执行SQL,控制台如下所示。
在这里插入图片描述

如何转大写

MySQL中字符转大写,可使用 UCASE函数,字符转小写 可使用LOWER函数。

SELECT 
    COLUMN_NAME AS `数据元素`,
    UCASE(data_type) AS `数据类型-大写`,
		LOWER(data_type) AS `数据类型-小写`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_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 `数据类型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_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 `下划线第一个位置的字母`,
    CASE
        WHEN
            LOCATE('_', COLUMN_NAME, 1) != 0
        THEN
            CONCAT(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_NAME
    END AS `驼峰展示`,
    data_type AS `数据类型`,
    CASE
        WHEN IS_NULLABLE = 'YES' THEN '必填'
        ELSE '非必填'
    END AS `是否必填`,
    column_comment AS `描述`
FROM
    information_schema.COLUMNS
WHERE
    TABLE_NAME = 'tb_order';

执行SQL,控制台如下所示。
在这里插入图片描述


http://www.kler.cn/a/512639.html

相关文章:

  • 无人机飞手考证难度增加,实操、地面站教学技术详解
  • 《Linux服务与安全管理》| 邮件服务器安装和配置
  • mysql查看binlog日志
  • 【错误解决方案记录】spine3.8.75导出的数据使用unity-spine3.8插件解析失败报错的解决方案
  • SSM课设-学生管理系统
  • C# 解析 HTML 实战指南
  • Nginx:从入门到实战使用教程
  • 如何在Mac上优雅的使用nvm管理Node.js
  • 【 MySQL 学习2】常用命令
  • Chrome远程桌面无法连接怎么解决?
  • Vue.js组件开发-解决PDF签章预览问题
  • Python基础学习(五)文件和异常
  • AI之HardWare:英伟达NvidiaGPU性价比排名(消费级/专业级/中高端企业级)以及据传英伟达Nvidia2025年将推出RTX 5090/5080、华为2025年推出910C/910D
  • Android系统开发(八):从麦克风到扬声器,音频HAL框架的奇妙之旅
  • Docker 之mysql从头开始——Docker下mysql安装、启动、配置、进入容器执行(查询)sql
  • 深度学习基础:自动梯度、线性回归与逻辑回归的 PyTorch 实践
  • 【GORM】初探gorm模型,字段标签与go案例
  • 手写 拖拽 修改参数
  • HDFS的Java API操作
  • 探索国产多相流仿真技术应用,积鼎科技助力石油化工工程数字化交付
  • 蓝桥杯 阶乘的和(C++完整代码+详细分析)
  • function isBulkReadStatement, file SQLiteDatabaseTracking.cpp
  • 简识Redis中的fork操作
  • 蓝桥杯训练—完美的代价
  • VSCode的配置与使用(C/C++)
  • WPF 引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常 解决办法