例子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 Connectiontext_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()