如何使用Python從MySQL數據庫導出表結構到Word文檔

在開發和維護數據庫的過程中,能夠快速且準確地獲取表結構信息是至關重要的。本文將向您展示一種簡單而有效的方法,利用Python腳本從MySQL數據庫中提取指定表的結構信息,并將其導出為格式化的Word文檔。此方法不僅提高了工作效率,還確保了文檔的一致性和準確性。

使用步驟:

第一步:安裝必要的庫

首先,你需要確保你的環境中安裝了mysql-connector-pythonpython-docx這兩個Python庫。你可以通過以下命令來安裝它們:

pip install mysql-connector-python python-docx

第二步:準備代碼

復制以下Python代碼,并保存為.py文件(例如export_table_structure.py)。

import mysql.connector
from docx import Documentdef get_table_structure_with_comments(host, port, user, password, database, table):try:cnx = mysql.connector.connect(user=user,port=port,password=password,host=host,database=database)cursor = cnx.cursor()# 獲取表結構和字段信息(包含comment)columns_query = """SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA,COLUMN_COMMENTFROM information_schema.COLUMNSWHERE TABLE_SCHEMA = %s AND TABLE_NAME = %sORDER BY ORDINAL_POSITION;"""cursor.execute(columns_query, (database, table))columns_info = cursor.fetchall()# 獲取表的commenttable_comment_query = """SELECT TABLE_COMMENTFROM information_schema.TABLESWHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s;"""cursor.execute(table_comment_query, (database, table))table_comment = cursor.fetchone()[0]cursor.close()cnx.close()return table_comment, columns_infoexcept mysql.connector.Error as err:print(f"Database Error: {err}")return None, Nonedef write_to_docx_with_comments(table_name, table_comment, columns_info, output_path):document = Document()# 表標題帶注釋document.add_heading(f'Table Structure for {table_name} ({table_comment})', level=1)document.add_heading('Columns Information', level=2)# 創建表格:table = document.add_table(rows=1, cols=6)hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Field'hdr_cells[1].text = 'Type'hdr_cells[2].text = 'Null'hdr_cells[3].text = 'Key'hdr_cells[4].text = 'Default'#hdr_cells[5].text = 'Extra'hdr_cells[5].text = 'Comment'for column in columns_info:row_cells = table.add_row().cellsrow_cells[0].text = column[0] or ''row_cells[1].text = column[1] or ''row_cells[2].text = column[2] or ''row_cells[3].text = column[3] or ''row_cells[4].text = str(column[4]) if column[4] is not None else ''#row_cells[5].text = column[5] or ''row_cells[5].text = column[6] or ''document.save(output_path)# 使用示例
if __name__ == '__main__':host = '127.0.0.1'port = 3306user = 'user'password = 'password'database = 'database'table = 'goods'output_path = './goods.docx'# 獲取表注釋和字段信息table_comment, columns_info = get_table_structure_with_comments(host, port, user, password, database, table)if table_comment and columns_info:write_to_docx_with_comments(table, table_comment, columns_info, output_path)print(f"文檔已保存至:{output_path}")else:print("無法讀取數據庫表結構,請檢查連接或表是否存在。")

第三步:配置數據庫連接參數

在代碼的末尾,找到如下部分,根據您的數據庫實際信息修改這些變量值:

host = '127.0.0.1'  # 數據庫主機地址
port = 3306         # 端口號
user = 'user'       # 用戶名
password = 'password'  # 密碼
database = 'database'  # 數據庫名
table = 'goods'     # 表名
output_path = './goods.docx'  # 輸出文件路徑

第四步:運行腳本

打開終端或命令提示符,導航至包含上述腳本的目錄,然后運行該腳本:

python export_table_structure.py

如果一切設置正確,腳本將自動生成一個名為goods.docx的Word文檔,其中包含了指定表的結構信息。

第五步:檢查輸出結果

打開生成的Word文檔,檢查內容是否符合預期。每個字段的信息都應清晰地列出,包括名稱、數據類型、是否允許NULL、鍵信息、默認值以及注釋等。


通過這種方式,您可以輕松地為數據庫中的任何表創建詳細的結構文檔,這在項目交接、文檔編寫或是日常維護工作中都非常有用。希望這個小技巧能幫助您更高效地管理數據庫資源!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83026.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83026.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83026.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

寫作-- 復合句練習

文章目錄 練習 11. 家庭的支持和老師的指導對學生的學術成功有積極影響。2. 缺乏準備和未能適應通常會導致在挑戰性情境中的糟糕表現。3. 吃垃圾食品和忽視鍛煉可能導致嚴重的健康問題,因此人們應注重保持均衡的生活方式。4. 昨天的大雨導致街道洪水泛濫,因此居民們遷往高地以…

QT使用說明

QT環境準備 推薦Ubuntu平臺上使用,配置簡單,坑少。 Ubuntu 20.04 安裝 sudo apt-get install qt5-default -y sudo apt-get install qtcreator -y sudo apt-get install -y libclang-common-8-dev啟動 qtcreatorHelloWorld 打開 Qt Creator。選擇 …

React 第四十九節 Router中useNavigation的具體使用詳解及注意事項

前言 useNavigation 是 React Router 中一個強大的鉤子,用于獲取當前頁面導航的狀態信息。 它可以幫助開發者根據導航狀態優化用戶體驗,如顯示加載指示器、防止重復提交等。 一、useNavigation核心用途 檢測導航狀態:判斷當前是否正在進行…

列表單獨展開收起同時關閉其余子項的問題優化

如圖所示,當在列表中,需要分別單獨點開子選項時,直接這樣用一個index參數判斷即可,非常簡單方便,只需要滿足點開當前index,然后想同index用null值自動關閉即可

WPF【11_5】WPF實戰-重構與美化(MVVM 實戰)

11-10 【重構】創建視圖模型,顯示客戶列表 正式進入 MVVM 架構的代碼實戰。在之前的課程中, Model 和 View 這部分的代碼重構實際上已經完成了。 Model 就是在 Models 文件夾中看到的兩個文件, Customer 和 Appointment。 而 View 則是所有與…

LangChain-結合魔塔社區modelscope的embeddings實現搜索

首先要安裝modelscope pip install modelscope 安裝完成后測試 from langchain_community.embeddings import ModelScopeEmbeddingsembeddings ModelScopeEmbeddings(model_id"iic/nlp_gte_sentence-embedding_chinese-base")text "這是一個測試句子"…

可定制化貨代管理系統,適應不同業務模式需求!

在全球化貿易的浪潮下,貨運代理行業扮演著至關重要的角色。然而,隨著市場競爭的日益激烈,貨代企業面臨著越來越多的挑戰:客戶需求多樣化、業務流程復雜化、運營成本上升、利潤空間壓縮……這些挑戰迫使貨代企業不斷尋求創新和突破…

Lyra學習筆記2 GFA_AddComponents與ULyraPlayerSpawningManagerComponent

目錄 前言GameFeatureAction_AddComponentsULyraPlayerSpawningManagerComponent緩存所有PlayerStart位置選擇位置 前言 1.以control模式為例 2.比較散,想單獨拿出一篇梳理下Experience的流程 GameFeatureAction_AddComponents 這部分建議看 《InsideUE5》GameFeatu…

進程生命周期

進程生命周期 Linux是多任務操作系統,系統中的每個進程能夠分時復用CPU時間片,通過有效的進程調度策略實現多任務并行執行。進程在被CPU調度運行,等待CPU資源分配以及等待外部事件時會處于不同的狀態。進程狀態如下: 創建狀態&a…

文字轉圖片的字符畫生成工具

軟件介紹 今天要介紹的這款軟件可以將文字轉換成圖片的排列形式,非常適合需要將文字圖形化的場景,建議有需要的朋友收藏。 軟件名稱與用途 這款軟件名為《字符畫大師》,是一款在網吧等場所非常流行的聊天輔助工具,其主要功能就…

歷年南京大學計算機保研上機真題

2025南京大學計算機保研上機真題 2024南京大學計算機保研上機真題 2023南京大學計算機保研上機真題 在線測評鏈接:https://pgcode.cn/school Count Number of Binary Strings 題目描述 Given a positive integer n n n ( 3 ≤ n ≤ 90 3 \leq n \leq 90 3≤n≤…

王樹森推薦系統公開課 排序06:粗排模型

shared bottom 表示神經網絡被所有特征共享。精排模型主要開銷在神經網絡,神經網絡很大且很復雜。 每做一次推薦,用戶塔只做一次推理。物品塔存放入向量數據庫。 后期融合模型常用于召回,前期融合模型常用于精排。 物品塔短時間內比較穩…

VSCode的下載與安裝(2025親測有效)

目錄 0 前言1 下載2 安裝3 后記 0 前言 丫的,誰懂啊,嘗試了各種辦法不行的話,我就不得不拿出我的最后絕招了,卸載,重新安裝,我經常要重新安裝,所以自己寫了一個博客,給自己&#xf…

端午節互動網站

端午節互動網站 項目介紹 這是一個基于 Vue 3 Vite 開發的端午節主題互動網站,旨在通過有趣的交互方式展示中國傳統端午節文化。網站包含三個主要功能模塊:端午節介紹、互動包粽子游戲和龍舟競賽游戲。 預覽網站:https://duanwujiekuaile…

Python+requests+pytest接口自動化測試框架的搭建(全)

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快 框架的設計思路 首先要明確進行接口自動化需要的步驟,如下圖所示: 然后逐步拆解需要完成的工作: 1)了解分析需求&…

OpenCV視覺圖片調整:從基礎到實戰的技術指南

引言:數字圖像處理的現代意義與OpenCV深度應用 在人工智能與計算機視覺蓬勃發展的今天,圖像處理技術已成為多個高科技領域的核心支撐。根據市場研究機構Grand View Research的數據,全球計算機視覺市場規模預計將從2022年的125億美元增長到2030年的253億美元,年復合增長率達…

JS手寫代碼篇---手寫節流函數

8、節流函數 什么是節流函數? 指規定一個單位時間,在這個單位時間內,只能有一次觸發事件的回調函數執行,如果在同一個單位時間內某事件被觸發多次,只有一次能生效。 與防抖函數有什么區別? 防抖函數是延…

2025年05月30日Github流行趨勢

項目名稱:agenticSeek 項目地址url:https://github.com/Fosowl/agenticSeek項目語言:Python歷史star數:13040今日star數:1864項目維護者:Fosowl, steveh8758, klimentij, ganeshnikhil, apps/copilot-pull-…

node_modules包下載不下來

如果項目里面的package-lock.json有resolved ,就指向了包的下載來源,如果這個網址掛了,那npm i 就會一直卡著。而且,在終端去修改 npm的鏡像是沒有用的 解決辦法是:把項目里面的 lock文件 .npmrc都刪了 然后重新下載就可以了

OramaCore 是您 AI 項目、答案引擎、副駕駛和搜索所需的 AI 運行時。它包括一個成熟的全文搜索引擎、矢量數據庫、LLM界面和更多實用程序

一、軟件介紹 文末提供程序和源碼下載 OramaCore 是您的項目、答案引擎、副駕駛和搜索所需的 AI 運行時。 它包括一個成熟的全文搜索引擎、矢量數據庫、LLM具有行動計劃和推理功能的接口、用于根據數據編寫和運行您自己的自定義代理的 JavaScript 運行時,以及更多…