Python 从入门到实战33(使用MySQL)

embedded/2024/10/11 0:29:41/

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

        上篇文章我们讨论了数据库编程接口操作的相关知识。今天我们将学习一下数据库MySQL使用的相关知识。

         在使用MySQL之前,我们需要支持python 的MySQL 驱动来连接到MySQL服务器。我们可以使用PyMySQL。安装起来比较简单,在“命令提示符”窗口输入如下命令:

pip install PyMySQL

以上图所示,安装PyMySQL成功。

1、连接数据库

上一节我们创建了数据库root,现在我们使用PyMySQL来连接数据库。

操作步骤如下:

连接数据库>创建一个游标对象>使用execute()方法执行SQL>使用fetchone()方法获取单条数据

import pymysql

#打开数据库进行连接,host,user,password,database参数指明
db = pymysql.connect(host="localhost",user="root",password="root",database='mysql')

#使用cursor()方法创建一个游标对象
cursor = db.cursor()

#使用execute()方法执行SQL查询
cursor.execute("SELECT VERSION()")

#使用fetchone()方法获取单条数据
data = cursor.fetchone()
print("Database version: %s "%data)

查看输出:

Database version: 8.0.39

2、创建数据表                    

数据库连接成功后,我们就可以为数据库创建数据表了,下面举例说明。

如创建scores 表,如下代码:

#打开数据库进行连接,host,user,password,database参数指明
db = pymysql.connect(host="localhost",user="root",password="root",database='mysql')

#使用cursor()方法创建一个游标对象
cursor = db.cursor()

#execute()方法执行SQL查询,如果scores 存在,则删除表
cursor.execute("DROP TABLE IF EXISTS scores")

#使用预处理语句创建表
sql = """
CREATE TABLE scores(
    id int(8) NOT NULL AUTO_INCREMENT,
    name varchar(50) NOT NULL,
    English int(8) NOT NULL,
    Math int(8) NOT NULL,
    Chinese int(8) NOT NULL,
    PRIMARY KEY(id)
)ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
"""
#
执行SQL语句
cursor.execute(sql)

#关闭数据库
db.close()

以上代码执行后可以看到数据库下面有产生对应的表scores

3、操作MySQL数据表

MySQL 数据表的操作主要是数据的新增、删除、修改和查找。

这里举例说明新增一些记录,如批量添加多条记录。

executemany()方法的语法格式:

executemany(operation,seq_of_params)

参数说明:  operation:操作的SQL语句

seq_of_params:参数序列

举例说明:

如我们像上面说的scores添加几位学生的分数。

import pymysql

#打开数据库进行连接,host,user,password,database参数指明
db = mymysql.connect(host="localhost",user="root",password="root",database='mysql',charset='utf8')

#使用cursor()方法创建一个游标对象
cursor = db.cursor()

#数据列表
data = [("xiaoming",100,66,88),
    ("xiaohua",90,76,89),
    ("xiaomi",70,86,80),
]

try:
    #执行插入动作
    cursor.executemany(
        "insert into scores(name,English,Math,Chinese) values(%s,%s,%s,%s)",data)
    #提交数据
    db.commit()
except:
    #发生错误时回滚
    db.rollback()

#关闭数据库
db.close()

查看数据库数据:有正常插入3条数据,

4、查询数据表

查询数据库和新增数据类似,只是SQL语句不同,以及后续处理展示一下查询到的数据,下面举例说明:

import pymysql
#打开数据库进行连接,host,user,password,database参数指明
db = pymysql.connect(host="localhost",user="root",password="root",database='mysql',charset='utf8')

#使用cursor()方法创建一个游标对象
cursor = db.cursor()

#执行查询数据
cursor.execute("SELECT * FROM scores")
# 获取查询结果 此时获取全部数据
rows = cursor.fetchall()

# 获取查询结果 此时获取第一条数据
# rows = cursor.fetchone()

# 获取查询结果 此时获取多条数据
# rows = cursor.fetchmany(2)

# 打印结果
print(rows)

# 关闭游标和数据库连接
cursor.close()
db.close()

输出结果参考:

查询到了,对应的数据信息由元组表示:

((8, 'xiaohua', 90, 76, 89), (7, 'xiaoming', 100, 66, 88), (9, 'xiaomi', 70, 86, 80), (10, 'xiaoming', 100, 66, 88), (11, 'xiaohua', 90, 76, 89), (12, 'xiaomi', 70, 86, 80))

今天先写学习到这里了,每天进步一点点。明天也要加油啊!明天我们继续学习python


http://www.ppmy.cn/embedded/124617.html

相关文章

探索Python文本处理的新境界:textwrap库揭秘

文章目录 **探索Python文本处理的新境界:textwrap库揭秘**一、背景介绍二、textwrap库是什么?三、如何安装textwrap库?四、简单函数使用方法4.1 wrap()4.2 fill()4.3 shorten()4.4 dedent()4.5 indent() 五、实际应用场景5.1 格式化日志输出5…

MATLAB计算与建模常见函数:2.回归模型

回归模型 回归分析(regressionanalysis) 是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法;在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器&…

设计模式-生成器模式/建造者模式Builder

构建起模式:将一个复杂类的表示与其构造分离,使得相同的构建过程能够得出不同的表示。(建造者其实和工厂模式差不多) 详细的UML类图 图文说明:距离相同的构建过程 得出不同的展示。此时就用两个类(文本生成…

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(2)Keras

文章目录 前言一、Keras二、使用Kears 估计回归问题的神经网络1. 载入、处理数据2. 数据预处理:归一化3. 设定一系列随机数种子4. 定义了一个简单的深度神经网络5. 训练模型6. 查看训练结果7. 使用最优轮数(index1)重新估计 此神经网络模型8.…

第一弹:C++ 的基本知识概述

文章目录 知识点 1:C 的概述1. C的特征2. C 程序的编辑、编译和执行3. 第一个 C 源程序4. 面向对象程序设计思想4.1 面向对象程序设计思想初始4.2 面向对象程序设计思想的核心 知识点 2:C 对 C 的扩展1. 作用域访问运算符 ::1.1 全局变量和局部变量1.2 作…

Python从0到100(六十):机器学习-模型选择与交叉验证

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

通信工程学习:什么是TCP传输控制协议

TCP:传输控制协议 TCP(Transmission Control Protocol,传输控制协议)是因特网协议套件中最重要的协议之一,它为应用程序提供了可靠、面向连接的通信服务。以下是TCP协议的详细解释: 一、TCP传输控制协议的…

「漏洞复现」用友U8 CRM config/fillbacksettingedit.php SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…