# 第一步：按照精简代码修改数据库的密码
# 第二步：按照数据库建库.txt  建立数据库。
# 第三步：打开jupyter

运行第一个：复制下面代码到jupyuter点击运行
# 安装pandas + MySQL连接相关库
!pip install pandas pymysql sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple


运行第二个：复制下面代码到jupyuter点击运行
import pandas as pd
from sqlalchemy import create_engine

# --------------------------
# 你的MySQL配置（不用改，保持你自己的）
# --------------------------
MYSQL_USER = "root"       
MYSQL_PASSWORD = "123456" 
MYSQL_HOST = "localhost"  
MYSQL_PORT = "3306"       
MYSQL_DB = "test_db"    

# --------------------------
# ✅ 修复：强制指定中文字符集 utf8mb4（关键代码）
# --------------------------
engine = create_engine(
    f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}?charset=utf8mb4",
    # 追加字符集初始化，彻底解决中文乱码/写入失败
    connect_args={"init_command": "SET NAMES utf8mb4"}
)

# 测试连接
try:
    with engine.connect():
        print("✅ MySQL数据库连接成功！字符集已修复支持中文")
except Exception as e:
    print(f"❌ 连接失败：{e}")







运行第三个：复制下面代码到jupyuter点击运行

# --------------------------
# 1. 手动构造课程数据（示例）
# --------------------------
data = {
    "课程编号": ["CS001", "CS002", "MA001", "EN001"],
    "课程名称": ["Python数据分析", "数据库原理", "高等数学", "大学英语"],
    "学分": [4, 3, 5, 2],
    "授课教师": ["张老师", "李老师", "王老师", "刘老师"],
    "上课时间": ["周一/周三 第1-2节", "周二/周四 第3-4节", "周一/周五 第5-6节", "周三 第7-8节"]
}

# 转为DataFrame
df_manual = pd.DataFrame(data)

# --------------------------
# 2. 写入MySQL数据库
# --------------------------
# 参数说明：
# name：要写入的表名（如果不存在会自动创建）
# con：数据库连接引擎
# if_exists：处理表已存在的情况
#   - "replace"：删除原表，重建新表写入
#   - "append"：在原表末尾追加数据
#   - "fail"：如果表存在就报错
# index=False：不把pandas的索引写入数据库

df_manual.to_sql(
    name="course_info_manual",  # 自定义表名
    con=engine,
    if_exists="replace",
    index=False
)

print("✅ 任务3.1完成：手动数据已写入MySQL表 course_info_manual")














