Python学习笔记(13) --Mysql,Python关联数据库

传送门==>B站黑马python入门教程


目录


Mysql之前在学习Java时已完成学习

mysql学习记录


Python关联数据库

基础案例

pymysql

处理使用图形化工具之外,也可以使用编程语言执行SQL操作数据库,

在Python中,可使用pymysql完成对mysql数据库的操作

pip install pymysql

创建到mysql的数据库链接

python 复制代码
from pymysql import Connection

# 创建链接
conn = Connection(host="localhost",port=3306,user="root",password="123456",
                  database="python_study",charset="utf8")

# 链接数据库版本信息;
print (conn.get_server_info())

# 关闭
conn.close()

案例:测试非查询类型的SQL语句

powershell 复制代码
from pymysql import Connection

# 创建链接
conn = Connection(host="localhost",port=3306,user="root",password="123456",
                  database="python_study",charset="utf8")

# 链接数据库版本信息;
print (conn.get_server_info())

#获取游标对象
cursor = conn.cursor()
# 创建数据表
sql = "CREATE TABLE test_pymysql(id INT , info VARCHAR(255))"
cursor.execute(sql)

# 关闭
conn.close()

在数据库客户端查看,数据表已创建

案例:测试查询类型的SQL语句

python 复制代码
from pymysql import Connection

# 创建链接
conn = Connection(host="localhost",port=3306,user="root",password="123456",
                  database="python_study",charset="utf8")

# 链接数据库版本信息;
print (conn.get_server_info())

#获取游标对象
cursor = conn.cursor()
# 创建数据表
sql = "select * from test_pymysql"
cursor.execute(sql)

# 获取结果
results : tuple = cursor.fetchall()
for result in results:
    print(result)

# 关闭
conn.close()

案例:链接数据库且插入数据

python 复制代码
from pymysql import Connection

# 创建链接
conn = Connection(host="localhost",port=3306,user="root",password="123456",
                  database="python_study",charset="utf8")

#获取游标对象
cursor = conn.cursor()
# 创建数据表
sql = "insert into test_pymysql values(3,'Q3')"
cursor.execute(sql)

# 提交
conn.commit()
# 关闭
conn.close()

若在链接参数中指定autocommit=True 自动提交开启,

则不用在代码中执行 commit手动提交


综合案例


创建数据库

sql 复制代码
create table orders(
	order_date DATE,
	order_id VARCHAR(255),
	money INT,
	province VARCHAR(10)
)
python 复制代码
from file_define import TextFileReader, JsonFileReader
from data_define import Record
from pymysql import Connection

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

jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()
# 将2个月份的数据合并
all_data: list[Record] = jan_data + feb_data

# 构建MySQL链接对象
conn = Connection(
    host="localhost",
    port=3306,
    user="root",
    password="123456",
    database="python_study",
    autocommit=True
)
# 获得游标对象
cursor = conn.cursor()
# 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)

# 关闭链接
conn.close()


相关推荐
YJlio2 小时前
杨利杰YJlio|博客导航目录(专栏总览 + 推荐阅读路线)
开发语言·python·pdf
Swizard2 小时前
数据不够代码凑?用 Albumentations 让你的 AI 模型“看”得更广,训练快 10 倍!
python·算法·ai·训练
智算菩萨2 小时前
【Python机器学习】决策树与随机森林:解释性与鲁棒性的平衡
python·决策树·机器学习
宁大小白2 小时前
pythonstudy Day44
python·机器学习
m0_638079622 小时前
电气工程及其自动化导论(课程论文/报告)
学习·学习方法
x66ccff2 小时前
Claude Code 安装方法
android·java·数据库
嘟嘟w2 小时前
MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
数据库·mysql
四谎真好看2 小时前
MySQL 学习笔记(进阶篇3)
笔记·学习·mysql·学习笔记
小龙2 小时前
【学习笔记】模型的权重数据到底是干嘛的
人工智能·笔记·学习·权重