day06-操作数据库

一、操作mysql数据库

conn = pymysql.connect()  连接数据库,括号内若写入autocommit=Ture,便不许手动提交,会自动提交

cur = conn.cursor()  建立游标

cur.execute() 执行sql语句

conn.commit() 提交修改信息

cur.fetchall() 获取查询到的所有结果

cur.fetchone() 只获取到一条结果

cur.fetchmany(2) 获取到指定的几条结果

cur.close() 游标关闭

conn.close() 连接关闭

# 1、连上数据库  ip 账号 密码 端口号 数据库名
# 2、执行sql
# 3、获取到结果

import pymysql
conn = pymysql.connect(host='******(ip)',user='jxz',password='123456',
                port=3306,db='jxz',charset='utf8',autocommit=True)# 加上autocommit后,便不需手动提交,会自动提交

cur = conn.cursor()# 建立游标
# cur.execute('select * from nhy;')# 执行sql语句,它只是帮你执行sql语句,不会给你返回数据
# sql = 'insert into nhy(name,pwd) value ("aaa","222222")'
# cur.execute(sql)
# conn.commit()
cur.execute('select * from nhy where name="aaa"')


# sql2 = 'select * from nhy where name="aaa"'

print(cur.fetchall())# 获取查询到的所有结果
# print(cur.fetchone()) # 只获取一条
# print(cur.fetchmany(2))# 指定获取几条
cur.close()#游标关闭
conn.close()#连接关闭


def my_db(ip,user,passwd,db,sql,port=3306,charset='utf8'):
    coon = pymysql.connect(host=ip,user=user,
                        password=passwd,db=db,
                        port=port,charset=charset,autocommit=True)
    cur = conn.cursor()
    sql=sql.strip()
    cur.execute(sql)
    # 'select'
    sql_start = sql[:6].lower()# 取sql的开头,然后转换成小写的
    if sql_start.startwith('select') or sql_start.startwith('show'):
        data = cur.fetchall()
    else:
        data = 'ok'
    cur.close()
    coon.close()
    return data


    # 'select'
    # 'update'
    # 'delete'
    # 'insert'

 二、操作mysql数据库(2)

import pymysql,xlwt
coon = pymysql.connect(host='******(ip)',user='jxz',password='123456',db='jxz',port=3306,charset='utf8')
# cur = coon.cursor(cursor=pymysql.cursors.DictCursor) #指定游标类型
cur = coon.cursor() #指定游标类型
cur.execute('select * from YUZE_userinfo;')

fileds = [ filed[0] for filed in cur.description ] #获取到所有的字段
#列表生成式
data = list(cur.fetchall())
data.insert(0,fileds) #只是给你加数据
book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')

line = 0 #行号
for d in data:#外层循环控制行,
    # ['id','name','sex']
    col = 0  # 列号
    for col_data in d:  #控制列
        sheet.write(line,col,col_data)
        col+=1
    line+=1

#比较高端
for index,line_data in enumerate(data):
    #0,['id','name','sex']
    #1,[1,nhy,nan]
    for index2,col_data in enumerate(line_data):
        #0,1
        #1,nhy
        #2,nan
        sheet.write(index,index2,col_data)
        #0,0,id
        #0,1,name
        #0,2sex

#1、一个一个单元格写,先写第一行的每个单元格
#2、写每一行的时候,行号是不变的,列在变
#3、嵌套的循环

# book.save('user.xls')
# cur.close()
# coon.close()
#

猜你喜欢

转载自www.cnblogs.com/Noul/p/9294169.html