# Python学习笔记——第七弹数据库数据的读取②

272 阅读2分钟

「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」。

绝大多数公司都会选择将数据存入数据库中,因为数据库既可以存放海量数据,又可以非常便捷的实现数据 查询。本部分将以MySQL为例,学习如何使用pandas模块和对应的数据库模块(分别是pymysql和pymssql)实现数据的连接与读取。

1. 介绍pymysql模块和pymssql模块的连接函数connect

二者的连接函数名称一致但是函数的参数不完全相同,所以需要分别介绍函数用法和几个重要参数的含义:

1.1 pymysql中的connect

pymysql.connect(host=None,user=None,password='',database=None,port=0,charset='')

主要参数说明如下:

  • host:指定需要访问的MySQL服务器。
  • user:指定访问MySQL数据库的用户名。
  • password:指定访问MySQL数据库的密码。
  • database:指定访问MySQL数据库的具体库名。
  • port:指定访问MySQL数据库的端口号。
  • charset:指定读取MySQL数据库的字符集,如果数据库中含有中文,一般可以尝试将该参数设置为“utf8”或“gbk”.

1.2 pymssql中的connect

pymssql.connect(server=None,user=None,password=None,database=None,charset=None)

1.3 两者不同

从两个模块的connect函数看,两者几乎没差别,而且参数含义也一致的,所不同的是pymysql模块中connect函数的host参数表示需要访问的服务器,而pymssql函数中对应的参数server指的是对应数据库的主机号与端口号的组合host:port。

2. 实例

#导入第三方模块
import pymysql
#连接MySQL数据库
conn=pymysql.connect(host='localhost',user='root',password='369369',database='test',port=3306,charset='utf8'
#读取数据
user=pd.read_sql('select *from topy',conn)
#关闭连接
conn.close()
#数据输出
user

注意:MySQL的原始数据集中含有中文,未来避免乱码的现象,将connect函数中的chartset参数设置为utf8。读取数据时,需要用到pandas模块中的read_sql函数,该函数至少传入两个参数,一个是读取数据的查询语句(sql),另一个是连接桥梁(con);读取完数据之后,关闭连接conn,因为它会一直占用电脑的资源影响电脑的运行效率。