Python快速上手系列--连接数据库--入门篇

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Python快速上手系列--连接数据库--入门篇

前言

数据库在在我们生活中还是很常见的,超市里货物信息,餐馆里的菜单信息还有账单流水等,很多都是存储在相应的数据库中,当你想要查询价格,商品对应的信息时,可以通过使用数据库来完成。数据库的优点大致的了解一下:1.整体数据结构化。2.数据的共享性高、冗余度低且易扩充3.数据独立性高4.数据由数据库管理系统统一管理和控制在学习本篇之前,大家可以好好看看数据库的基本操作,然后结合本章实际上手试试。

正文

操作数据库还是比较简单的,看下面的步骤,后续的代码会做具体的解析。

导包  import pymysql
数据库连接设置 conn=pysql.connect(host,user,passwd,port,db,charset)
生成游标    cur=conn.cursor(cursor-pymysql.cursors.DictCursor)
编写sql语句 sql='select * feom student'
执行sql语句 cur.excute(sql)
获取数据    data=cur.fetchall()
关闭游标    cur.close()
关闭连接    conn.close()

导包

导包是必须的操作,我门本章所用的是pymysql包,还有其他的包,不限于使用哪种包。可以自行扩展。

数据库连接设置

我用的是Mysql+Navicat,其他不同的数据库根据实际情况变更一下即可。

# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='QINGAN',
                      database='QINGDATA')#如果汉字显示不出来就加入charset=‘utf-8'

变量名随意设置,host这里我写的是localhost本机的,如果你有服务器,且服务器装了数据库,那就写服务器地址,如101.101.1.1(瞎写的,举例),port是装数据库的时候自己设置的,如果你写的3307或者8888,那你连接数据库的时候,port就得写对应的端口号,user在无任何变动的情况下默认root,database是你要连接的数据库了。

生成游标

# 生成游标
cur = con.cursor()

关于游标:游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。通俗一点就是没有游标你就拿不到你想要的值,做不了你想做的操作。

写入SQL语句

# 写入sql语句
sql = 'select * from t_beauty'

此处可以是任何的SQL语句。写入多条数据操作,对应的执行数据库所用的函数方法有所不同

sql = "insert into t_beauty(id,sex,home,call_num) VALUES(%s,%s,%s,%s);"
list_name = [('清安','男','湖南长沙',1464231456),('灵眸','女','陕西西安',1895223456),
('清雪','男','福建厦门',1689929295)]

执行多条写入数据,只有执行了才能写入数据。

es = cur.executemany(sql,list_name)

执行SQL语句

# 游标执行一条sql语句
res = cur.execute(sql)

这里需要用游标点上对应的函数方法execute来执行你想要的sql语句。上述写了一个多条数据写入,这里是单条数据写入,用的方法不一样,但是用法大同小异。

获取数据

1、查看数据库里面有多少条数据

# 打印数据库有多少条数据
print(res)

2、获取一条数据

# 获取查询结果,获取一条数据
data_1=cur.fetchone()

3、获取全部数据

# 获取查询结果,获取全部数据,如果已经使用fetchone取了第一条的数据,游标会自动向下取值
data_1 = cur.fetchall()

4、移动游标

# 在已经获取到一条数据的时候,还想获取其他数据中的一条
cur.scroll(-1,mode='relative')# 将游标往前移动一个位置再进行取值
cur.scroll(3,mode='absolute')# 绝对路径取值,索引取值,取0的时候取全部值

5、下标获取值

当取0的时候为全部值

# 获取查询结果,获取第一条数据,可以更改数字来获取值
data_1=cur.fetchmany(1)

提交值

# 手动给数据库提交数据库语句,也可以自动提交autocommit=True,在连接设置处加入即可
con.commit()

关闭游标

cur.close()

关闭数据库

con.close()

下面来看看完整的代码吧!

# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='QINGAN',
                      database='QINGDATA')#如果汉字显示不出来就加入charset=‘utf-8'
# 生成游标
cur = con.cursor()
# 注入sql语句
sql = 'select * from t_beauty'
# 游标执行一条sql语句
res = cur.execute(sql)
# 获取查询结果,获取一条数据
data_1=cur.fetchone()
print(data_1)
con.commit()
# 关闭游标
cur.close()
# 关闭数据库连接
con.close()

这样一个简单的数据库操作就好了,当你不想每次使用就要写的话,那就封装一个吧。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
27天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
236 7
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
303 1
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
1月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
421 1
|
2月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
2月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
118 13
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
172 5
|
2月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
929 11

推荐镜像

更多