第一次用python连接mysql数据库

一、读取表中的数据画图


#coding=utf-8
import MySQLdb
import matplotlib.pyplot as plt
list1=[]
list2=[]
conn= MySQLdb.connect(
        host='localhost',
        port = 3306,
        user='root',
        passwd='1234',
        db ='test',
        charset='utf8'
        )
cur = conn.cursor()
aa=cur.execute("select * from B where flag='f'")
rows = cur.fetchall()
for row in rows:
    list1.append(row[0])
    list2.append(row[1])
cur.close()
conn.commit()
conn.close()
for i in list2:
    print i
plt.plot(list1,list2)
plt.ylabel('col')
plt.xlabel('id')
plt.show()

简单的实现了一下,详细细节再继续完善。

二、读取表中数据写入到excel文件中

查了一些code,找到了两种方法

参考了一个同时写入到excel和txt中,表示不太懂,继续研究。。。

#coding=utf-8
import MySQLdb
import xlrd
import sys
import xlsxwriter
conn= MySQLdb.connect(
        host='localhost',
        port = 3306,
        user='root',
        passwd='1234',
        db ='test',
        charset='utf8'
        )
cur = conn.cursor()
aa=cur.execute("select * from B where flag='f'")
data = cur.fetchall()

workbook2007 = xlsxwriter.Workbook('DSE_WR_W_DAY.xlsx')  # 创建目标excel表格
worksheet2007 = workbook2007.add_worksheet()                #创建 Sheet1表格
fw = open('DSE_WR_W_DAY.txt', 'w')
format = workbook2007.add_format({'border': 1})

# 同时输出到excel和txt
[[[[worksheet2007.write(i, j, str(value), format), fw.write(str(value)), fw.write('\t')] for j, value in
   enumerate(value_r)], fw.write('\n')] for i, value_r in enumerate(data)]
workbook2007.close()
fw.close()

print ('excel创建完成')

cur.close()
conn.commit()
conn.close()

2、遇到了一个问题保存文件时,文件名是乱码,编码是最大的问题,解决方法在文件名前加了个u。。。

#!/usr/bin/env python
# coding=UTF-8

import MySQLdb
import xlwt  # excel write
import sys
hostIp = 'localhost'
user = 'root'
passwd = '1234'
database = 'test'


def chongZhiWeiTouZi():  # 充值未投资用户
    sql = '''SELECT
                 ctci.acc_no AS '账号',
                 ctci.cn_name AS '姓名',
                 ctci.job_phone AS '手机',
                 ctci.create_date AS '注册时间',
                 ctci.amount AS '充值金额',
                 ctci.create_time AS '充值时间'
            FROM info ctci'''

    columnName = ['账号', '姓名', '手机', '注册时间', '充值金额', '充值时间']  # 定义所有的列名,共6列

    style1 = xlwt.XFStyle()  # 设置单元格格式
    style1.num_format_str = 'yyyy/m/d h:mm:ss'

    wb = xlwt.Workbook(encoding='utf-8')  # 创建一个excel工作簿,编码utf-8,表格中支持中文
    sheet = wb.add_sheet('sheet 1')  # 创建一个sheet
    for i in range(len(columnName)):  # 将列名插入表格,共6列
        sheet.write(0, i, columnName[i])

    db = MySQLdb.connect(hostIp, user, passwd, database, charset="utf8")  # 连接数据库,编码utf-8
    cursor = db.cursor()  # 创建一个指针对象
    cursor.execute(sql)  # 执行sql语句
    results = cursor.fetchall()

    rows = len(results)  # 获取行数
    print rows
    for i in range(rows):
        for j in range(3):
            sheet.write(i + 1, j, results[i][j])
        sheet.write(i + 1, 3, results[i][3], style1)  # 设置时间列的单元格格式
        sheet.write(i + 1, 4, results[i][4])
        sheet.write(i + 1, 5, results[i][5], style1)

    wb.save(u'员工信息表.xls')  # 保存表格,并命名为 员工信息表.xls   重点加了个u进行编码
    cursor.close()
    db.close()

chongZhiWeiTouZi()

这种方法理解简单,很清楚,感谢之前分享的人。

下午装navicat for mysql,mysql,之前没用过,装起来费了太多的事,装MySQLdb包时又遇到麻烦,总之今天下午解决了,学到了一些东西。。。。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值