python连接mysql
侯小啾 人气:0前言:
使用python
连接mysql数据库数据
有以下两种读取数据的方式推荐:
一种是通过游标,及fetch系列方法进行操作,另一种是通过pandas的read_sql()进行读取并操作。各种方法各有优劣,可根据具体情形,择优选择使用。
示例如下:
1.fetchone/fetchmany/fetchall
获取一条、多条、全部条。
import pymysql # 数据库相关信息 dbHost = 'xxxxxxx' dbUser = 'xxx' dbPassword = '******' dbName = 'xxx' dbCharset = 'utf8' conn = pymysql.connect(host=dbHost, port=3306, user=dbUser, password=dbPassword, db=dbName, charset=dbCharset) # 获取游标对象 cs = conn.cursor() # 通过游标对象,执行sql语句,返回值为受影响记录的行数 r = cs.execute('select * from goods') # 获取一条数据 print(cs.fetchone()) # 第一条数据 print("==============================================") # 再次执行会获取第二条数据 print(cs.fetchone()) # 第二条数据 # 获取多条数据 print(cs.fetchmany(3)) # 指定条数 # 获取全部数据 print(cs.fetchall()) # 再次执行,获取到的将是一个空元组,因为上边的fetchall已经取完了(游标可以理解为对获取位置的标记) print(cs.fetchall()) # 当获取完毕,再查询数据返回为() # 获取结束后,要有始有终,关闭游标和数据库连接 # 关闭游标 cs.close() # 关闭连接 conn.close()
2.pandas.read_sql()
使用pandas
库的read_sql()
函数获取数据,将得到一个DataFrame
。
import pymysql import pandas as pd # 数据库相关信息 dbHost = 'xxxxxxx' dbUser = 'xxx' dbPassword = '******' dbName = 'xxx' dbCharset = 'utf8' conn = pymysql.connect(host=dbHost, port=3306, user=dbUser, password=dbPassword, db=dbName, charset=dbCharset) sql = "select xxxxxxxxxxxxxxxxxxxxxxxxxxxx" df = pd.read_sql(sql, conn) print(df) # 关闭连接 conn.close()
加载全部内容