1、案例练习之前,进行一个etl相关的课程:
    安装依赖的包 → 打开anaconds prompt → 输入pip install pymysql(命令行程序)→ 运行后结束
    可能遇到版本落后问题,此时需要更新 → python -m pip install —upgrade pip → 更新后解决
    如果电脑有两个版本则输入pip3 install pymysql

    2、读取数据库两种连接方式:
    (1)Pandas连接(推荐)

    1. import pymysql
    2. import pandas as pd
    3. from sqlalchemy import create_engine # 从第三方包调一个方法,下面用了这个方法
    4. # 不用create_engine这个方法连接数据库的话,用sqlalchemy的ORM框架连接数据库也可以
    5. sql = "select * from company where companyShortName='唯医网'"
    6. engine = create_engine('mysql+pymysql://root:mysql@localhost:3306/data?charset=utf8')
    7. #不用使用参数,直接使用固定格式语句;表示使用pymysql这个方法连接mysql数据库
    8. # 创建一个全新的数据框
    9. df = pd.read_sql(sql,engine)
    10. # pd.read_sql(sql,con) 这里的连接比较特殊,有sql,con两个关键参数:
    11. # sql指sql语句
    12. # con指创建数据库连接的engine变量
    13. df
    14. # 用sql语句过滤数据 或者 使用df数据框过滤数据都可以,看自己需求
    15. # 区别在于sql语句和df数据框占用的服务器不同,自己练习的话都是localhost,但是工作的话就不一样了

    (2)Python原生连接(不方便)

    1. import pymysql
    2. # 创建新的变量:conn(连接)
    3. # 'localhost' = '127.0.0.1'
    4. # 打开数据库连接
    5. conn = pymysql.connect(
    6. host = 'localhost', # 数据库主机地址
    7. user = 'root', # 数据库用户名
    8. password = 'mysql', # 数据库密码
    9. db = 'data', # 需要连接的数据库
    10. port = 3306,
    11. charset = 'utf8'
    12. )
    13. # 使用 cursor() 方法创建一个游标对象cur
    14. cur = conn.cursor()
    15. # 使用 execute() 方法执行 SQL 查询
    16. cur.execute('select * from company')
    17. # 使用 fetchall() 方法获取所有数据
    18. # 使用 fetchmany() 方法获取一些数据
    19. # 使用 fetchone() 方法获取单条数据
    20. data = cur.fetchall() # 所有数据都放进了data里面
    21. data # data为元祖形式
    22. for d in data:
    23. print(d[0],d[1],d[2])
    24. # 如果要执行新的sql语句时,要把整个操作再执行一遍
    25. # 提交到数据库执行,但是数据分析师以读为主
    26. conn.commit()
    27. # 关闭游标连接
    28. cur.close()
    29. # 关闭数据库连接
    30. conn.close()
    31. # 关闭数据库连接,游标连接也会被关掉
    32. # 一个mysql数据库只会保持一个conn连接,所以要记得退出