安装pymysql: pip install pymysql 创建到MySQL的数据库链接 from pymysql import Connection# 获取到MySQL数据库的链接对象conn = Connection( host='localhost', # 主机名(或IP地址) port=3306, # 端口,默认3306 user='root', # 账户名 password='123456' # 密码)# 打印MySQL数据库软件信息print(conn.get_server_info())# 关闭到数据库的链接conn.close()
执行SQL语句 # 执行非查询性质SQL# 获取游标对象cursor = conn.cursor()# 选择数据库conn.select_db('test')# 使用右边对象,执行sql语句cursor.execute('create table test_pymysql(id INT, info VARCHAR(255));')
# 执行查询性质SQL# 获取游标对象cursor = conn.cursor()# 选择数据库conn.select_db('world')# 使用游标对象,执行sql语句cursor.execute('select * from student;')# 获取查询结果results: tuple = cursor.fetchall()for r in results: print(r)
commit 提交 # 获取游标对象cursor = conn.cursor()# 选择数据库conn.select_db('world')# 使用游标对象,执行sql语句cursor.execute('insert into student values(10001,'小兰花',21);')# 通过commit确认conn.commit()
案例需求: 把面向对象案例中的数据集,用python语言,读取数据,将数据写入MySQL的功能 首先新建一个数据库来使用,数据库名称:py_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));
代码main.py:另外的模块还是和之前的一样 from file_define import FileReader, TextFileReader, JsonFileReadrfrom data_define import Recordfrom pymysql import Connectiontext_file_reader = TextFileReader('D:/rfpython/2011年1月销售数据.txt')json_file_reader = JsonFileReadr('D:/rfpython/2011年2月销售数据JSON.txt')jan_data: list[Record] = text_file_reader.read_data()feb_data: list[Record] = json_file_reader.read_data()# 将2个月份的数据合并为1个list来存储all_data: list[Record] = jan_data + feb_data# 构建MySQL链接对象conn = Connection( host='localhost', # 主机名(或IP地址) port=3306, # 端口,默认3306 user='root', # 账户名 password='123456', # 密码 autocommit=True # 设置自动提交)# 获取游标对象cursor = conn.cursor()# 选择数据库conn.select_db('py_sql')# 组织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}')' # 执行SQL语句 cursor.execute(sql)# 关闭MySQL链接对象conn.close()
运行:
|