数据库操作与集成:使用Python与SQLite、MySQL、PostgreSQL等数据库

news2024/11/23 20:45:45

目录

引言

一、Python与SQLite的集成

1.1 SQLite简介

1.2 连接SQLite数据库

1.3 创建表

1.4 插入数据

1.5 查询数据

1.6 更新和删除数据

二、Python与MySQL的集成

2.1 MySQL简介

2.2 安装与配置

2.3 连接MySQL数据库

2.4 创建表与插入数据

2.5 查询、更新与删除数据

2.6 使用with语句管理连接

三、Python与PostgreSQL的集成

3.1 PostgreSQL简介

3.2 安装与配置

3.3 连接PostgreSQL数据库

3.4 创建表与插入数据

四、事务处理

五、总结


引言

在软件开发中,数据库是存储、检索和管理数据的关键组件。Python作为一种广泛使用的高级编程语言,通过其丰富的库和模块支持,能够轻松地与多种数据库进行集成,实现数据的读写操作。本文将详细介绍如何使用Python与SQLite、MySQL、PostgreSQL等数据库进行集成,并提供丰富的代码示例和案例,以帮助新手朋友快速上手。

一、Python与SQLite的集成

1.1 SQLite简介

SQLite是一个轻量级的数据库引擎,它完全包含在单个磁盘文件中,不需要一个独立的服务器进程或操作系统级别的安装。SQLite因其简单性、可靠性和高性能,在小型应用和嵌入式系统中非常流行。Python内置了sqlite3模块,可以非常方便地与SQLite数据库进行交互。

1.2 连接SQLite数据库

首先,我们需要使用sqlite3模块连接到SQLite数据库。如果数据库文件不存在,sqlite3将自动创建它。

import sqlite3  
  
# 连接到SQLite数据库  
# 如果文件不存在,会自动在当前目录创建:  
conn = sqlite3.connect('example.db')  
  
# 创建一个Cursor:  
cursor = conn.cursor()  
  
# 关闭连接  
# cursor.close()  
# conn.close()

1.3 创建表

接下来,我们创建一个表来存储数据。

# 创建一个表  
cursor.execute('''CREATE TABLE IF NOT EXISTS stocks  
               (date text, trans text, symbol text, qty real, price real)''')  
  
# 提交事务:  
conn.commit()

1.4 插入数据

向表中插入数据,可以通过execute方法执行SQL语句来实现。

# 插入一行记录  
cursor.execute("INSERT INTO stocks VALUES ('2023-01-01','BUY','RHAT',100,35.14)")  
  
# 插入多行记录  
cursor.executemany("INSERT INTO stocks VALUES (?,?,?,?,?)",  
                   [("2023-01-02", "SELL", "IBM", 1000, 45.00),  
                    ("2023-01-03", "BUY", "MSFT", 100, 72.00),  
                    ("2023-01-04", "SELL", "IBM", 500, 55.00)])  
  
# 提交事务:  
conn.commit()

1.5 查询数据

使用SQL查询语句可以检索数据库中的数据。

# 查询所有记录  
cursor.execute("SELECT * FROM stocks")  
print(cursor.fetchall())  
  
# 查询特定记录  
cursor.execute("SELECT * FROM stocks WHERE symbol='RHAT'")  
print(cursor.fetchall())

1.6 更新和删除数据

更新和删除数据同样使用execute方法执行SQL语句。

# 更新数据  
cursor.execute("UPDATE stocks SET price = 35.14 WHERE symbol = 'RHAT'")  
conn.commit()  
  
# 删除数据  
cursor.execute("DELETE FROM stocks WHERE symbol = 'IBM'")  
conn.commit()

二、Python与MySQL的集成

2.1 MySQL简介

MySQL是一种关系型数据库管理系统,广泛应用于各种应用系统中。与SQLite不同,MySQL需要安装在服务器上,并可以通过网络进行访问。

2.2 安装与配置

在Python中操作MySQL数据库,首先需要安装pymysql模块。

pip install pymysql

2.3 连接MySQL数据库

使用pymysql模块连接到MySQL数据库。

import pymysql  
  
# 连接数据库  
conn = pymysql.connect(host='localhost',  
                       user='user',  
                       password='passwd',  
                       database='mydb',  
                       charset='utf8mb4',  
                       cursorclass=pymysql.cursors.DictCursor)  
  
# 创建一个游标对象  
cursor = conn.cursor()  
  
# 关闭连接  
# cursor.close()  
# conn.close()

2.4 创建表与插入数据

与SQLite类似,我们可以通过执行SQL语句来创建表和插入数据。

# 创建表  
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))")  
conn.commit()  
  
# 插入数据  
cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ('John Doe', 'john.doe@example.com'))  
conn.commit()

2.5 查询、更新与删除数据

查询、更新和删除数据的操作也通过执行SQL语句来实现。

# 查询数据  
cursor.execute("SELECT * FROM users WHERE name = %s", ('John Doe',))  
results = cursor.fetchall()  
for row in results:  
    print(row)  
  
# 更新数据  
cursor.execute("UPDATE users SET email = %s WHERE name = %s", ('john.doe@newemail.com', 'John Doe'))  
conn.commit()  
  
# 删除数据  
cursor.execute("DELETE FROM users WHERE name = %s", ('John Doe',))  
conn.commit()

2.6 使用with语句管理连接

为了避免忘记关闭游标和连接,可以使用Python的with语句来自动管理资源。

with pymysql.connect(host='localhost',  
                     user='user',  
                     password='passwd',  
                     database='mydb',  
                     charset='utf8mb4',  
                     cursorclass=pymysql.cursors.DictCursor) as conn:  
    with conn.cursor() as cursor:  
        # SQL 查询  
        sql = "SELECT * FROM users"  
        cursor.execute(sql)  
          
        # 使用 fetchone() 方法获取单条数据.  
        result = cursor.fetchone()  
        print(result)

三、Python与PostgreSQL的集成

3.1 PostgreSQL简介

PostgreSQL是一种功能强大的开源对象-关系数据库系统,支持复杂的查询、事务完整性、多版本并发控制等高级功能。

3.2 安装与配置

在Python中操作PostgreSQL数据库,需要安装psycopg2模块。

pip install psycopg2

或者,如果使用的是Windows系统,可能需要安装psycopg2-binary:

pip install psycopg2-binary

3.3 连接PostgreSQL数据库

使用psycopg2模块连接到PostgreSQL数据库。

import psycopg2  
  
# 连接数据库  
conn = psycopg2.connect(database="testdb", user="postgres", password="password", host="127.0.0.1", port="5432")  
  
# 创建一个游标对象  
cursor = conn.cursor()  
  
# 关闭连接  
# cursor.close()  
# conn.close()

3.4 创建表与插入数据

# 创建表  
cursor.execute('''  
CREATE TABLE IF NOT EXISTS employees (  
    id serial PRIMARY KEY,  
    name varchar(100),  
    position varchar(100),  
    salary decimal(10, 2)  
)  
''')  
conn.commit()  
  
# 插入数据  
cursor.execute("INSERT INTO employees (name, position, salary) VALUES (%s, %s, %s)", ('John Doe', 'Developer', 75000))  
conn.commit()

3.5 查询、更新与删除数据

# 查询数据  
cursor.execute("SELECT * FROM employees")  
rows = cursor.fetchall()  
for row in rows:  
    print(row)  
  
# 更新数据  
cursor.execute("UPDATE employees SET salary = %s WHERE name = %s", (80000, 'John Doe'))  
conn.commit()  
  
# 删除数据  
cursor.execute("DELETE FROM employees WHERE name = %s", ('John Doe',))  
conn.commit()

四、事务处理

在数据库操作中,事务是确保数据一致性和完整性的重要手段。事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),简称ACID。

在Python中,无论是操作SQLite、MySQL还是PostgreSQL,都可以通过类似的方式来处理事务。

# 开始事务  
conn.begin()  
  
try:  
    # 执行数据库操作...  
    cursor.execute("...")  
    # 提交事务  
    conn.commit()  
except Exception as e:  
    # 出现异常时回滚事务  
    conn.rollback()  
    print(f"An error occurred: {e}")

五、总结

通过本文的介绍,我们了解了如何使用Python与SQLite、MySQL、PostgreSQL等数据库进行集成,实现数据的读写操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔记:《利用Python进行数据分析》之apply的应用

这一节较难,十分灵活,可多花点时间 apply的简单应用 最通用的GroupBy方法是apply。 apply会将待处理的对象拆分成多个片段,然后对各片段调用传入的函数,最后尝试将各片段组合到一起。 回到之前那个小费数据集,假设你…

(四)vForm 动态表单自定义组件、属性

系列文章目录 (一)vForm 动态表单设计器之使用 (二)vForm 动态表单设计器之下拉、选择 (一)vForm 动态表单设计器之使用 文章目录 前言 一、自定义字段组件 1. 获得自定义组件json 2. 源码修改 二、自定义属性面板 1.属性面板文件 2.添加自定义属性 3.为字段组件添加属…

同事用10分钟给公司做了一套数据大屏,实力选手非他莫属!

数据可视化大屏是什么? 数据可视化大屏是一种将大量数据以图形、图表、地图等直观形式展示在大屏幕上。它通常被应用于企业的监控中心、会议室、展厅等场所,用于实时展示企业的关键业务指标、运营数据、市场趋势等信息。 今天给大家分享用JVS-智能BI如何…

DBdoctor快速纳管GBase 8a数据库

目录 如何快速纳管GBase 8a? 1.GBase 8a分析型数据库纳管部署架构 2.一分钟零依赖DBdoctor Server安装 3.快速纳管GBase 8a 重点说明: 针对GBase 8a,DBdoctor提供哪些功能服务? 1.SQL审核 2.深度巡检与报表 3.性能洞察 1&…

WebSocket通信学习笔记

1 简介 WebSocket是一种全双工通信协议,它允许客户端和服务器之间建立持久化的双向连接,从而在不频繁创建HTTP请求的情况下进行实时数据传输。与传统的HTTP协议相比,WebSocket更适合需要实时数据更新的应用场景,如聊天应用、实时…

架构师篇-23、工作坊实战应用架构

复习 ADM - 应用架构【AA】 案例实践 - 应用组件 - 核心模块 案例实践 - xx 项目应用关系 课程内应用架构

科研绘图系列:R语言PCoA图(PCoA plot)

介绍 PCoA(主坐标分析,Principal Coordinate Analysis)是一种多维数据的降维技术,它用于探索高维空间中样本之间的关系。PCoA通常用于生态学、遗传学和其他领域的数据分析,以揭示样本或个体之间的相似性或差异性。 PCoA图的作用: 数据降维:PCoA可以将高维数据(如物种…

18046 字母分类统计

### 思路 1. 读取输入的一行字符。 2. 初始化计数器:字母、数字、空格和其它字符的个数。 3. 遍历每个字符,根据其类型更新相应的计数器。 4. 输出计数结果,格式为:字母、数字、空格和其它字符的个数,中间以空格分隔。…

【2024-2025源码+文档+调试讲解】公开课管理系统

摘 要 随着互联网技术的迅猛发展,教育行业也逐渐迎来了一场全新的变革。在线教育平台的崛起为学习者提供了更加便捷灵活的学习方式,而公开课作为其中的一种形式,因其开放性和多样性而备受欢迎。然而,传统的公开课管理方式存在着…

【案例】如何做B端竞品分析?

竞品分析是产品经理的基本功,B端产品经理同样也需要经常做竞品分析。 B端产品的竞品分析难度更大,主要体现在如下几个方面: 1)B端产品的信息获取困难 产品试用成本高,不像互联网产品那样可以随时下载体验。 对外公…

【数学分析笔记】第3章第1节 函数极限(1)

3. 函数极限与连续函数 3.1 函数极限 设有一半径为 r r r的圆,角度 x x x用弧度制表示。 红色的弧长为 2 x r 2xr 2xr,蓝色的弦长为 2 r sin ⁡ x 2r\sin x 2rsinx y 弦长 弧长 sin ⁡ x x y\frac{弦长}{弧长}\frac{\sin x}{x} y弧长弦长​xsinx​…

云计算密钥管理的重要性

云计算密钥管理是指对云计算环境中使用的加密密钥进行全生命周期的管理过程,包括密钥的生成、存储、分发、使用、更新和销毁等环节。这一过程对于保障云计算数据的安全性至关重要。以下是对云计算密钥管理的详细阐述: 一、云计算密钥管理的重要性 随着云…

大道至简 以量取胜

这次聊聊网络推广,这种发文章发视频的推广。 厉害的人,选高权重平台,精心打磨雕琢文案,一篇文案引爆流量十万,非常牛逼。 普通人很难做到这样。也许一篇文案,只有几百个浏览。 咱们简化一下,…

创纪录!300亿美元季度营收背后,英伟达的汽车“困局”

作为全球市值最高的上市公司,英伟达的财务数据变化历来是资本市场关注的焦点。不管是数据中心、游戏还是汽车业务,这家GPU巨头的业务进展,一定程度上也代表着不同细分市场的风向变化。 本周,英伟达对外发布最新数据,截…

北京市公共资源交易中心到访隆道调研交流

8月29日下午,北京市公共资源交易中心调研组在党委副书记朱永利带领下莅临隆道公司开展调研。隆道公司总裁吴树贵、总裁助理姚锐和市场总监张晶热情地接待来访的九位调研组成员,双方就招标采购数字化转型实践、人工智能技术研究和应用等话题展开深入交流。…

(免费领源码)java#SSM#mysql黄冈旅游景点服务网站16627-计算机毕业设计项目选题推荐

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游服务等问题,对旅游服务进行…

Android源码编译_内置apk

在开发过程中,有一部分apk,我们是需要出厂内置好的,例如输入法、客户定制app等,这里内置分两种,一种是只内置apk,不含apk源码,一种是包含apk源码。 一、如何将apk内置到系统 1、首先将apk放到…

【网络安全】XSS+OTP绕过+账户接管

未经许可,不得转载。 文章目录 正文XSSOTP绕过账户接管正文 目标:www.example.com XSS 不断寻找可能存在XSS的点位。 终于,在个人资料页面:www.example.com/profile_details.php?userid= ,使用Payload<script>alert(1)</script>,实现XSS: 因此,能够实…

【书生大模型实战营】进阶岛 第4关 InternVL 多模态模型部署微调实践

文章目录 【书生大模型实战营】进阶岛 第4关 InternVL 多模态模型部署微调实践学习任务什么是InternVLInternVL 模型总览Dynamic High ResolutionPixel ShuffleInternVL 部署微调实践准备InternVL模型准备环境激活虚拟环境&#xff08;注意&#xff1a;后续的所有操作都需要在这…

数字化转型下的高效设备管理:构建智能化、精细化管理体系

企业应对日益复杂的设备管理挑战&#xff0c;通过数字化、智能化手段提升设备管理效率与设备可用性&#xff0c;具体体现在以下几个方面&#xff1a; 全面信息化与结构化&#xff1a;系统首先解决了设备信息散乱无序的问题&#xff0c;通过在线建档与台账管理&#xff0c;将设备…