python数据库操作
一、使用的库
1.连接数据库pysql
2.读取数据库pandas
3.将读取的元组数据类型转换为列表numpy
二、连接数据库
import pymysql.cursors
db = pymysql.connect(
host='**',
port=**,
user='**',
password='**',
db='**',
charset='utf8'
)
# 创建一个游标
cursor = db.cursor()
#执行sql
cursor.execute(sql)
三、读取数据库返回结果
1. 读取一行或多行数据
- fetchone()获取结果集的下一行
- fetchall()获取结果集中的剩下的所有行——<class 'tuple'>
2.读取一列数据
- python读取sql里面的指定数据列(一列数据),并将其转换成列表使用
- 用pandas来读取数据库里面的内容——<class 'pandas.core.frame.DataFrame'>
- 再使用numpy库将DataFrame数据转换成数组——<class 'numpy.ndarray'>
- 再将数组类型数据转换成列表——<class 'list'>
# 读取数据
import pandas as pd
import numpy as np
result = cursor.fetchall()
print(result,type(result))
result1 = pd.DataFrame(list(result), columns=["sku_count", "sku_pay_amount", "unit_price"])
print(result1,type(result1))
# 先使用array()将DataFrame转换一下
result2 = np.array(result1)
print(result2,type(result2))
# 再将转换后的数据用tolist()转成列表
result3 = result2.tolist()
print(result3,type(result3))
for i in range(0, len(result3)):
value_column = result3[i][0]
print(value_column)
四、处理结果集
1.遍历元组集获取所有单个元组
students=cur.fetchall()
for student in students:
print(student)
2.遍历元组里的所有元素输出
students=cur.fetchall()
for student in students:
sno=student[0]
sname=student[1]
sage=student[2]
score=student[3]
print('sno':sno,'sname':sname,'age':sage,'score':score)
3.获取一条数据——使用下标和fetchone方法
student=cur.fetchone()
print(student)
sno=student[0]
sname=student[1]
sage=student[2]
score=student[3]
print('sno':sno,'sname':sname,'age':sage,'score':score)