python使用pymysql来操作MySQL

例子1

from pymysql import Connection

# 构建到MySQL数据库的连接
conn= Connection(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    autocommit=True # 设置自动提交
)

print(conn.get_server_info())

# 要执行SQL查询必须要先获得游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("test")
# 执行sql
#cursor.execute("create table test_pymysql(id int);")
# 执行 查询的sql
cursor.execute("select * from student")

results = cursor.fetchall() # 得到的是嵌套的元组,内层元组是每一条记录
for r in results:
    print(r)

# 关闭连接
conn.close()

输出结果:

8.0.30
(10001, '周杰轮', 31, '男')
(10002, '王力鸿', 33, '男')
(10003, '蔡依琳', 35, '女')
(10004, '林志灵', 36, '女')
(10005, '刘德滑', 33, '男')
(10006, '张大山', 10, '男')
(10007, '刘志龙', 11, '男')
(10008, '王潇潇', 33, '女')
(10009, '张一梅', 20, '女')
(10010, '王一倩', 13, '女')
(10011, '陈一迅', 31, '男')
(10012, '张晓光', 33, '男')
(10013, '李大晓', 15, '男')
(10014, '吕甜甜', 36, '女')
(10015, '曾悦悦', 31, '女')
(10016, '刘佳慧', 21, '女')
(10017, '项羽凡', 23, '男')
(10018, '刘德强', 26, '男')
(10019, '王强强', 11, '男')
(10020, '林志慧', 25, '女')

例子2:设置自动提交,使得insert能生效

from pymysql import Connection

# 构建到MySQL数据库的连接
conn= Connection(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    autocommit=True # 设置自动提交, 进行insert才能正常插入记录
)

print(conn.get_server_info())

# 要执行SQL查询必须要先获得游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("test")
# 执行sql
#cursor.execute("create table test_pymysql(id int);")
# 执行 查询的sql
cursor.execute("insert into student values(10021, '孙绍谦', 33, '男')")

# 关闭连接
conn.close()

例子3

使用python读取数据,并将数据写入到MySQL

先执行如下SQL语句创建表:

create database py_sql charset utf8;

use py_sql;

create table orders(
	order_date date,
	order_id varchar(255),
	money int,
	province varchar(10)
);

然后是使用前面数据分析的代码进行改造:

from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record
from pymysql import Connection


text_file_reader = TextFileReader("./2011年1月销售数据.txt")
json_file_reader = JsonFileReader("./2011年2月销售数据JSON.txt")

jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()

# 将两个月份数据合并为到一个list中
all_data: list[Record] = jan_data + feb_data

# 1.构建MySQL对象
conn = Connection(
host="localhost",
    port=3306,
    user="root",
    password="123456",
    autocommit=True # 设置自动提交, 进行insert才能正常插入记录
)

# 2.获得游标对象
cursor = conn.cursor()
# 3.选择数据库
conn.select_db('py_sql')
# 4.组织 sql 语句
for record in all_data:
    sql = f"insert into orders(order_date, order_id, money, province)" \
        f"values('{record.date}', '{record.order_id}', {record.money}, '{record.province}')"
    cursor.execute(sql)
conn.close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值