一、需求背景
需要提供Mysql数据库设计word文档,展示数据库表结构设计,类似如下图
二、分析
mysql的information_schema库中存放了库表数据信息,可以从中获取到需要的数据。
2.1 获取所有表和表的备注
SELECT
TABLE_NAME,
TABLE_COMMENT
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = 'test_database_name'
其中test_database_name
是待查询的数据库名称
2.2 获取表的字段说明
SELECT
COLUMN_NAME 列名,
COLUMN_TYPE 数据类型,
IS_NULLABLE 是否为空,
COLUMN_DEFAULT 默认值,
COLUMN_COMMENT 备注
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema = 'test_database_name'
AND table_name = 'test_table_name'
其中test_database_name
是待查询的数据库名称,test_table_name
是待查询的数据表名称。
当然,desc
命令也可以,自由发挥。
2.3 生成word文档
可以利用python的python-docx库来实现
三、实现
Python3代码如下:
# # coding=utf-8
import MySQLdb
from docx import Document
DATABASE_NAME_CMO = 'test_database_name' # 库名
DATABASE_USER_CMO = 'test_user_name' # 用户名
DATABASE_PASSWORD_CMO = 'test_password' # 密码
DATABASE_HOST_CMO = '127.0.0.1' # host
DATABASE_PORT_CMO = 3600 # port
def connect_mysql():
db_config = dict(host=DATABASE_HOST_CMO, port=DATABASE_PORT_CMO