python读取excel生成sql

我爱海鲸 2025-05-26 19:34:52 暂无标签

简介sql、py、修改数据库注释

修改表名:

import pandas as pd

# 配置Excel文件路径
excel_file = 'your_excel_file.xlsx'  # 替换为你的Excel文件路径

# 从Excel读取数据
def read_excel_data(file_path):
    try:
        # 使用pandas读取Excel
        df = pd.read_excel(file_path)
        
        # 确保列名正确(根据你的Excel实际列名调整)
        df.columns = ['系统编码', '数据库类型', '数据库名', '表英文名', '表中文名', 
                     '业务域', '加工周期', '模型描述', '资产责任人', '存储大小(mb)', '资产重要等级']
        return df
    except Exception as e:
        print(f"读取Excel文件出错: {e}")
        return None

# 生成修改表注释的SQL语句
def generate_alter_table_sql(df):
    sql_statements = []
    for _, row in df.iterrows():
        table_name = row['表英文名']
        table_comment = row['表中文名']
        
        # 处理表注释中的特殊字符(如单引号)
        safe_comment = table_comment.replace("'", "''")
        
        sql = f"ALTER TABLE `{table_name}` COMMENT = '{safe_comment}';"
        sql_statements.append(sql)
    return sql_statements

# 主函数
def main():
    # 读取Excel数据
    df = read_excel_data(excel_file)
    if df is None:
        return
    
    # 生成SQL语句
    sql_statements = generate_alter_table_sql(df)
    
    # 输出SQL语句
    print("-- 生成的修改表注释SQL语句 --")
    for sql in sql_statements:
        print(sql)
    
    # 可选:将SQL保存到文件
    save_to_file = input("是否要将SQL语句保存到文件?(y/n): ").strip().lower()
    if save_to_file == 'y':
        with open('alter_table_comments.sql', 'w', encoding='utf-8') as f:
            f.write("\n".join(sql_statements))
        print("SQL语句已保存到 alter_table_comments.sql 文件")

if __name__ == "__main__":
    main()

修改字段名:

import pandas as pd

# 配置Excel文件路径
excel_file = 'your_excel_file.xlsx'  # 替换为你的Excel文件路径

def read_excel_data(file_path):
    try:
        # 使用pandas读取Excel
        df = pd.read_excel(file_path)
        
        # 确保列名正确(根据你的Excel实际列名调整)
        df.columns = ['系统编码', '数据库名', '表英文名', '字段英文名', 
                     '字段中文名', '字段类型', '字段描述']
        return df
    except Exception as e:
        print(f"读取Excel文件出错: {e}")
        return None

def generate_alter_column_sql(df):
    sql_statements = []
    for _, row in df.iterrows():
        table_name = row['表英文名']
        column_name = row['字段英文名']
        column_comment = row['字段中文名']
        column_type = row['字段类型']
        
        # 处理注释中的特殊字符(如单引号)
        safe_comment = column_comment.replace("'", "''")
        
        # 生成修改字段注释的SQL
        sql = f"ALTER TABLE `{table_name}` MODIFY COLUMN `{column_name}` {column_type} COMMENT '{safe_comment}';"
        sql_statements.append(sql)
    return sql_statements

def main():
    # 读取Excel数据
    df = read_excel_data(excel_file)
    if df is None:
        return
    
    # 生成SQL语句
    sql_statements = generate_alter_column_sql(df)
    
    # 输出SQL语句
    print("-- 生成的修改字段注释SQL语句 --")
    for sql in sql_statements:
        print(sql)
    
    # 可选:将SQL保存到文件
    save_to_file = input("是否要将SQL语句保存到文件?(y/n): ").strip().lower()
    if save_to_file == 'y':
        with open('alter_column_comments.sql', 'w', encoding='utf-8') as f:
            f.write("\n".join(sql_statements))
        print("SQL语句已保存到 alter_column_comments.sql 文件")

if __name__ == "__main__":
    main()

你好:我的2025