Python基础——PyCharm版本——第九章、MySQL操作(核心4)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Python基础——PyCharm版本——第九章、MySQL操作(核心4)

安装MySQL依赖包

如果pip版本不够【python -m pip install --upgrade pip】,先更新pip到最新版本。


image.png


安装语句:【pip install pymysql】

image.png


测试数据库以及数据表:

CREATE TABLE `userinfo` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `createDate` datetime NOT NULL,
  `userName` varchar(32) NOT NULL,
  `introduce` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

image.png

image.png

链接测试

import pymysql  # 导入pymysql库
# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
print(conn)

image.png


使用pymysql执行SQL语句的步骤如下:

创建数据库连接,并返回一个数据库连接对象

使用数据库连接对象中的cursor()函数获取游标对象

调用游标对象中的execute()函数执行SQL语句,该函数返回影响的行数

提交数据库操作,如果不提交将无法保存新建或者修改的数据

关闭游标,释放资源

关闭连接,释放资源

SQL语句测试

建表测试:

import pymysql  # 导入pymysql库
import time
# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象
def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)
# 建表语句
sql = '''
CREATE TABLE `users` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `createDate` datetime NOT NULL,
  `userName` varchar(32) NOT NULL,
  `introduce` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
'''
rows = cursor.execute(sql)  # 执行SQL语句
conn.commit()  # 提交
print("创建表不会返回行数:", rows)
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接

image.png

增删改测试:

import pymysql  # 导入pymysql库
import time
# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象
def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)
# 增删改SQL
sql = str.format("insert into userinfo values(0,'{0}','{1}','{2}')",
                 GetNow(time.localtime()),
                 "wangyuyan",
                 "王语嫣")
rows = cursor.execute(sql)  # 执行SQL语句
conn.commit()  # 提交数据库连接,如果是增、删、改操作,则必须提交
print("执行成功")
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接
if rows > 0:
    print("操作成功")
select查询测试:
import pymysql  # 导入pymysql库
import time
# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象
def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)
# 增删改SQL
sql = str.format("select * from userinfo")
rows = cursor.execute(sql)  # 执行SQL语句
print("信息行数:", rows)
result = cursor.fetchall()  # 获取所有信息
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接
print("为了保证数据安全故而数据个数为:", type(result))
for row in result:
    print(row[0], row[1], row[2], row[3])



image.png

聚合函数测试:

import pymysql  # 导入pymysql库
import time
# 创建数据库连接,注意密码参数passwd不要写成password
conn = pymysql.connect(host='127.0.0.1',
                       port=3306,
                       user='root',
                       passwd='root',
                       db='test',
                       charset='utf8')
cursor = conn.cursor()  # 获取游标对象
def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)
# 增删改SQL
sql = str.format("select sum(id) from userinfo")
rows = cursor.execute(sql)  # 执行SQL语句
print("信息行数:", rows)
result = cursor.fetchall()  # 获取所有信息
cursor.close()  # 关闭游标对象
conn.close()  # 关闭数据库连接
print("为了保证数据安全故而数据个数为:", type(result))
print(result[0][0])  # 第一个数据的第一个值肯定就对对应返回的信息



image.png

image.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
12月前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
4313 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
12月前
|
SQL 关系型数据库 MySQL
vb6读取mysql,用odbc mysql 5.3版本驱动
通过以上步骤,您可以在VB6中使用ODBC MySQL 5.3驱动连接MySQL数据库并读取数据。配置ODBC数据源、编写VB6代码
380 32
|
关系型数据库 MySQL Linux
MySQL版本升级(8.0.31->8.0.37)
本次升级将MySQL从8.0.31升级到8.0.37,采用就地升级方式。具体步骤包括:停止MySQL服务、备份数据目录、下载并解压新版本的RPM包,使用`yum update`命令更新已安装的MySQL组件,最后启动MySQL服务并验证版本。整个过程需确保所有相关RPM包一同升级,避免部分包遗漏导致的问题。官方文档提供了详细指导,确保升级顺利进行。
1344 16
|
11月前
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
1188 15
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
278 5
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
247 1
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
1098 1
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
212 0
|
Java Python
Python基础 | 深浅拷贝问题、递归函数练习
在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。下面先了解一下几个概念:对象、可变类型、引用
443 0
Python基础 | 深浅拷贝问题、递归函数练习

推荐镜像

更多