MySQL查询数据库中所有表名表结构及注释以及生成数据库文档

MySQL查询数据库中所有表名表结构及注释

生成数据库文档在后面!!! 

select t.TABLE_COMMENT -- 数据表注释
, c.TABLE_NAME -- 表名称
, c.COLUMN_COMMENT -- 数据项
, c.COLUMN_NAME -- 英文名称
, '' -- 字段描述
, upper(c.DATA_TYPE) as DATA_TYPE -- 数据类型
, c.CHARACTER_MAXIMUM_LENGTH -- 数据长度
, '' -- 是否字典项
, '' -- 字典内容
, (case
when c.IS_NULLABLE = 'YES' then '是'
when c.IS_NULLABLE = 'NO' then '否'
else c.IS_NULLABLE
end) as IS_NULLABLE -- 是否为空
, (
case
when c.COLUMN_KEY = 'PRI' then '是'
when c.COLUMN_KEY is null or c.COLUMN_KEY = '' then '是'
else c.COLUMN_KEY
end
) as COLUMN_KEY-- 是否主键
, c.COLUMN_DEFAULT-- 默认值
from information_schema.COLUMNS c,
information_schema.TABLES t
where c.TABLE_NAME = t.TABLE_NAME
and c.TABLE_SCHEMA not in ('information_schema', 'sys', 'performance_schema', 'mysql')
order by t.TABLE_COMMENT
;

information_schema.COLUMNSinformation_schema.TABLES这两个系统视图中检索数据表及其列的详细信息。

  1. 笛卡尔积:您的查询使用了逗号分隔的表名(information_schema.COLUMNS c, information_schema.TABLES t),这会导致两个表之间的笛卡尔积,除非您通过WHERE子句或其他方式明确指定连接条件。在您的例子中,您确实在WHERE子句中指定了c.TABLE_NAME = t.TABLE_NAME作为连接条件,但这仍然可能导致性能问题,因为不是标准的JOIN语法。
  2. JOIN语法:建议使用显式的JOIN语法来连接表,因为它更清晰且更容易维护。
  3. 表注释t.TABLE_COMMENT可能是从TABLES视图中获取的,但是您没有确保TABLES视图中的TABLE_COMMENT是针对与COLUMNS中相同的TABLE_SCHEMA的。
  4. 字段描述:您为“字段描述”预留了两个空字符串占位符,但您可能希望从某个地方获取实际的描述。
  5. CASE表达式:您的CASE表达式用于确定IS_NULLABLECOLUMN_KEY的值,但有一个潜在的问题:当COLUMN_KEYNULL或空字符串时,您将其设置为'是',这可能不是您想要的结果。通常,主键字段不会是'是'。

 简洁版:

SELECT   t.TABLE_COMMENT AS 数据表注释,  c.TABLE_NAME AS 表名称,  c.COLUMN_COMMENT AS 数据项,  c.COLUMN_NAME AS 英文名称,  '' AS 字段描述, -- 这里可以替换为实际的字段描述来源  UPPER(c.DATA_TYPE) AS DATA_TYPE,  c.CHARACTER_MAXIMUM_LENGTH AS 数据长度,  '' AS 是否字典项, -- 这里可以替换为实际的字典项来源  '' AS 字典内容, -- 这里可以替换为实际的字典内容来源  CASE   WHEN c.IS_NULLABLE = 'YES' THEN '是'  WHEN c.IS_NULLABLE = 'NO' THEN '否'  ELSE c.IS_NULLABLE  END AS IS_NULLABLE,  CASE   WHEN c.COLUMN_KEY = 'PRI' THEN '是'  WHEN c.COLUMN_KEY IN ('MUL', 'UNI') THEN '其他键' -- 例如:唯一键或多键  ELSE '否'  END AS COLUMN_KEY,  c.COLUMN_DEFAULT AS 默认值  
FROM   information_schema.COLUMNS c  
JOIN   information_schema.TABLES t ON c.TABLE_NAME = t.TABLE_NAME AND c.TABLE_SCHEMA = t.TABLE_SCHEMA  
WHERE   c.TABLE_SCHEMA NOT IN ('information_schema', 'sys', 'performance_schema', 'mysql')  
ORDER BY   t.TABLE_COMMENT;

生成数据库文档!!!
screw: 简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。 - Gitee.com

使用方法:
1、在pom文件中添加插件

<build><plugin><groupId>cn.smallbun.screw</groupId><artifactId>screw-maven-plugin</artifactId><version>1.0.4</version><dependencies><!-- HikariCP --><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>3.4.5</version></dependency><!--mysql driver--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency></dependencies><configuration><!--username--><username>root</username><!--password--><password>#n4rj</password><!--driver--><driverClassName>com.mysql.cj.jdbc.Driver</driverClassName><!--jdbc url--><jdbcUrl>jdbc:mysql://1.1.1.1:3456/tlink_sdgf</jdbcUrl><!--生成文件类型、HTML--><fileType>WORD</fileType><!--打开文件输出目录--><openOutputDir>false</openOutputDir><!--生成模板--><produceType>freemarker</produceType><!--文档名称 为空时:将采用[数据库名称-描述-版本号]作为文档名称--><fileName>测试文档名称</fileName><!--描述--><description>数据库文档生成</description><!--版本--><version>${project.version}</version><!--标题--><title>数据库文档</title></configuration><executions><execution><phase>compile</phase><goals><goal>run</goal></goals></execution></executions></plugin></plugins></build>

 2、点开maven找到该pom文件下面的插件双击run

3、成功之后在该pom文件的模块下面生成了一个doc文件夹下面就是生成的文档

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

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

相关文章

视频字幕提取工具怎么使用?不妨看看这些教程

在探索学习设备使用的过程中&#xff0c;视频教程扮演着极其重要的角色。 但是&#xff0c;我们可能会遇到一些挑战&#xff0c;比如长视频教程的观看效率不高&#xff0c;信息量大难以快速定位到关键点&#xff0c;或者有些人更喜欢阅读文字而非观看视频来学习。 为解决这一…

【JavaEE精炼宝库】多线程(5)单例模式 | 指令重排序 | 阻塞队列

目录 一、单例模式&#xff1a; 1.1 饿汉模式&#xff1a; 1.2 懒汉模式&#xff1a; 1.2.1 线程安全的懒汉模式&#xff1a; 1.2.2 线程安全的懒汉模式的优化&#xff1a; 二、指令重排序 三、阻塞队列 3.1 阻塞队列的概念&#xff1a; 3.2 生产者消费者模型&#xf…

Docker部署常见应用之大数据基础框架Hadoop

文章目录 Hadoop简介主要特点核心组件生态系统 Docker Compose 部署集群参考文章 Hadoop简介 Hadoop是一个开源框架&#xff0c;由Apache软件基金会开发&#xff0c;用于在普通硬件构建的集群中存储和处理大量数据。它最初由Doug Cutting和Mike Cafarella创建&#xff0c;并受…

H5小程序视频编辑解决方案,广泛适用,灵活部署

如何在微信小程序、网页、HTML5等WEB场景中实现轻量化视频制作&#xff0c;满足多样化的运营需求&#xff0c;一直是企业面临的挑战。美摄科技凭借其在视频编辑领域的深厚积累和创新技术&#xff0c;为企业量身打造了一套H5/小程序视频编辑解决方案&#xff0c;助力企业轻松应对…

C++笔记:模板

模板 为什么要学习模板编程 在学习模板之前&#xff0c;一定要有算法及数据结构的基础&#xff0c;以及重载&#xff0c;封装&#xff0c;多态&#xff0c;继承的基础知识&#xff0c;不然会出现看不懂&#xff0c;或者学会了没办法使用。 为什么C会有模板&#xff0c;来看下面…

JVM性能优化案例:减少对象频繁创建

JVM性能优化案例&#xff1a;减少对象频繁创建 案例背景 某金融应用系统在处理大量并发交易时&#xff0c;响应时间过长&#xff0c;并且有时出现内存溢出&#xff08;OutOfMemoryError&#xff09;的问题。经过分析&#xff0c;发现问题主要出在频繁的对象创建和较差的内存管…

git的ssh安装,windows通过rsa生成密钥认证问题解决

1 windows下载 官网下载可能出现下载太慢的情况&#xff0c;Git官网下载地址为&#xff1a;官网&#xff0c;推荐官网下载&#xff0c;如无法下载&#xff0c;可移步至CSDN&#xff0c;csdn下载地址&#xff1a;https://download.csdn.net/download/m0_46309087/12428308 2 Gi…

Perl 语言学习进阶

一、如何深入 要深入学习Perl语言的库和框架&#xff0c;可以按照以下步骤进行&#xff1a; 了解Perl的核心模块&#xff1a;Perl有许多核心模块&#xff0c;它们提供了许多常用的功能。了解这些模块的功能和用法是深入学习Perl的第一步。一些常用的核心模块包括&#xff1a;S…

如何在 Windows 10/11 上编辑 PDF [4 种简单方法]

PDF 在大多数设备上都易于查看&#xff0c;但由于其设计用于查看&#xff0c;因此编辑起来可能比较棘手。编辑 PDF 可能比编辑 Microsoft Office 文档更具挑战性。 不用担心&#xff0c;我们已经为你做好了准备。无论你是想添加、删除还是插入文本或图片&#xff0c;你都可以使…

Coze+Discord:打造你的免费AI助手(教您如何免费使用GPT-4o/Gemini等最新最强的大模型/Discord如何正确连接Coze)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 准备Discord📝 准备Coze🔌 连接💡 测试效果⚓️ 相关链接 ⚓️📖 介绍 📖 你是否想免费使用GPT-4o/Gemini等最新最强的大模型,但又不想花费高昂的费用?本文将教你如何通过Coze搭建Bot,并将其转发…

【AI绘画】Stable Diffusion 3开源

Open Release of Stable Diffusion 3 Medium 主要内容 Stable Diffusion 3是Stability AI目前为止最先进的文本转图像开放源代码算法。 这款模型的小巧设计使其完美适合用于消费级PC和笔记本电脑&#xff0c;以及企业级图形处理单元上运行。它已经满足了标准化的文字转图像模…

AI办公自动化:批量合并多个Excel表格的数据并汇总

工作任务&#xff1a; 有多个表格 把里面的月流量数据都合并到一张表中&#xff1a; 在chatgpt中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个Python脚本编写任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;F:\AI自媒体内容\AI行…

计算机视觉全系列实战教程:(九)图像滤波操作

1.图像滤波的概述 (1)Why (为什么要进行图像滤波) 去噪&#xff1a;去除图像在获取、传输等过程中的各种噪音干扰提取特征&#xff1a;使用特定的图像滤波器提取图像特定特征 (2)What (什么是图像滤波) 使用滤波核对图像进行卷积运算或非线性运算&#xff0c;以达到去噪或提…

11.2 Go 常用包介绍

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

使用‘消除’技术绕过LLM的安全机制,不用训练就可以创建自己的nsfw模型

开源的大模型在理解和遵循指令方面都表现十分出色。但是这些模型都有审查的机制&#xff0c;在获得被认为是有害的输入的时候会拒绝执行指令&#xff0c;例如会返回“As an AI assistant, I cannot help you.”。这个安全功能对于防止误用至关重要&#xff0c;但它限制了模型的…

化学品危险性分类鉴定报告 危化品危险性分类

一、化学品危险性分类报告&#xff1a; 按照国务院令 第591号 《危险化学品安全管理条例》、原十部委公告 2015年 第5号 《危险化学品目录&#xff08;2015版&#xff09;》、原安监总局令 第60号《化学品物理危险性鉴定与分类管理办法》和原安监总局令 第53号《危险化学品登记…

IBM Spectrum LSF Process Manager 在共享分布式计算环境中运行和管理业务关键工作流程

亮点 ● 快速创建复杂的分布式工作流 ● 开发可重复的最佳实践 ● 自信地运行关键工作流程 ● 提高流程可靠性 IBM Spectrum LSF Process Manager 使您能够设计和自动化计算或分析流程&#xff0c; 捕获和保护可重复的最佳实践。 使用直观的图形界面&#xff0c;您可以轻松记录…

【漏洞复现】飞企互联-FE企业运营管理平台 treeXml.jsp SQL注入漏洞

0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外&#xff0c;支持企业B2B、C2B与020等核心需求&#xff0c;为不同行业客户的互联网转型提供支持。其特色在于提供…

【十大排序算法】基数排序

数字犹如无数繁星&#xff0c;基数排序如晨曦的指引&#xff0c;将混沌序列织就成和谐的序曲。 文章目录 一、基数排序二、发展历史三、处理流程四、算法实现五、算法特性六、小结推荐阅读 一、基数排序 基数排序是一种非比较性的排序算法&#xff0c;它根据元素的位数来对元…

极限网关助力好未来 Elasticsearch 容器化升级

极限网关在好未来的最佳实践案例&#xff0c;轻松扛住日增百 TB 数据的流量&#xff0c;助力 ES 从物理机到云原生架构的改造&#xff0c;实现了流控、请求分析、安全管理、无缝迁移等场景。一次完美的客户体验~ 背景 物理机架构时代 2022 年&#xff0c;好未来整个日志 Elas…