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)
原文地址:https://www.cnblogs.com/jasmine0112/p/13597682.html