栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python操作Mysql数据库

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python操作Mysql数据库

1. 查询

import pymysql 
# 1. 创建数据库连接(服务器地址,账户,密码,数据库,编码)
con = pymysql.connect(host='localhost', user='root', password='root', database='test', charset='utf8')
# 2. 创建游标
cur = con.cursor()
sql = 'select count(1) from student'
# 3. 执行sql
cur.execute(sql)
# 4. 获取所有记录,返回一个元组
result = cur.fetchall()
print(type(result))
for row in result:
    for x in row:
        print(x,end='')
    print('r')
# 如果涉及增删改,需要提交事务
# con.commit()
# 5. 关闭游标
cur.close()
# 6. 关闭连接
con.close()

2. 插入数据

import pymysql 
# 1. 创建数据库连接(服务器地址,账户,密码,数据库,编码)
con = pymysql.connect(host='localhost', user='root', password='root', database='test', charset='utf8')
# 2. 创建游标
cur = con.cursor()
sql = "insert into student values(9,'李四',22)"
# data = ((7,'陈大文',30),(8,'张三',22))
# 3. 执行sql(插入多行数据)
# cur.executemany(sql,data)
cur.execute(sql)
# 4. 执行sql
con.commit()
# 5. 关闭游标
cur.close()
# 6. 关闭连接
con.close()

3. 批量插入数据(案例:表输入->表输出)

import pymysql 
# 1. 创建数据库连接(服务器地址,账户,密码,数据库,编码)
con = pymysql.connect(host='localhost', user='root', password='root', database='test', charset='utf8')
# 2. 创建游标
cur = con.cursor()
sql = 'select sno,sname,sage,now() from student'
# 3. 执行sql(插入多行数据)
cur.execute(sql)
# 4. 获取结果集
result = cur.fetchall()
print(result)
# 5. 关闭游标
cur.close()
# 6. 关闭连接
con.close()

# 连接别的数据库,清空表再把数据插入
con2 = pymysql.connect(host='localhost', user='root', password='root', database='test2', charset='utf8')
cur2 = con2.cursor()
# 清空数据
sql_del = 'delete from student'
cur2.execute(sql_del)
con2.commit()
# 插入数据
data = result
# print(data)
sql_insert = 'insert into student values(%s,%s,%s,%s)'
cur2.executemany(sql_insert,data)
con2.commit()
# 关闭
cur2.close()
con2.close()

print('数据迁移数据')

 4. 实现表关联(可应用与不同库的数据表之间)

# 实现表关联
import pymysql 
conn = pymysql.connect(host='localhost', user='root', password='root', database='test', charset='utf8')
cur = conn.cursor()
sql = 'select * from score'
cur.execute(sql)
result_score = cur.fetchall()
sql = 'select sno,sname from student'
cur.execute(sql)
result_student = cur.fetchall()
# print(result_score)
# print(result_student)
# 每一行存入字段,所有行存进列表
info_list = []
for row_score in result_score:
    info_dict = {}
    sno = row_score[0]
    cno = row_score[1]
    score = row_score[2]
    for row_student in result_student:
        if row_student[0] == sno:
            name = row_student[1]
    print(str(sno) + ' ' + str(cno) + ' ' + str(score) + ' ' + name)
    info_dict['sno'] = sno
    info_dict['cno'] = cno
    info_dict['score'] = score 
    info_dict['name'] = name 
    info_list.append(info_dict)

# 建表,插入数据
sql_create =  "create table if not exists score2(sno int(11),cno int(11),score int(11),name varchar(50)) charset='utf8' comment = '学生表2'"
cur.execute(sql_create)
sql_truncate =  "truncate table score2"
cur.execute(sql_truncate)
row_count = 1
for i in info_list:
    data = (i['sno'],i['cno'],i['score'],'x')
    print(data)
    sql_insert = 'insert into score2(sno,cno,score,name) values(%s,%s,%s,%s)'%data
    cur.execute(sql_insert)
    conn.commit()
    row_count += 1
    print('已成功插入' + str(row_count) + '行数据')
cur.close()
conn.close()
print('数据迁移成功')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号