【100天精通python】Day31:使用python操作数据库_数据库编程接口,连接对象和游标对象,数据库连接配置

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【100天精通python】Day31:使用python操作数据库_数据库编程接口,连接对象和游标对象,数据库连接配置

专栏导读

专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html

       数据库编程接口是用于连接、操作和管理数据库的一组函数、类和方法。不同类型的数据库可能有不同的编程接口。以下是一些常见的数据库编程接口:

一、数据库编程接口

1. Python标准库接口

Python标准库中的sqlite3模块提供了与SQLite数据库的连接和操作接口。

import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 执行SQL查询
cursor.execute("SELECT * FROM users")
# 处理查询结果
rows = cursor.fetchall()
# 关闭连接
conn.close()

2. MySQL Connector/Python接口

mysql.connector库提供了连接和操作MySQL数据库的接口。

import mysql.connector
# 连接到MySQL数据库
conn = mysql.connector.connect(
    host="localhost",
    user="username",
    password="password",
    database="mydb"
)
cursor = conn.cursor()
# 执行SQL查询
cursor.execute("SELECT * FROM users")
# 处理查询结果
rows = cursor.fetchall()
# 关闭连接
conn.close()

3. Psycopg2接口(用于连接PostgreSQL数据库)

psycopg2库提供了连接和操作PostgreSQL数据库的接口。

import psycopg2
# 连接到PostgreSQL数据库
conn = psycopg2.connect(
    host="localhost",
    user="username",
    password="password",
    database="mydb"
)
cursor = conn.cursor()
# 执行SQL查询
cursor.execute("SELECT * FROM users")
# 处理查询结果
rows = cursor.fetchall()
# 关闭连接
conn.close()

4. SQLAlchemy接口

 SQLAlchemy库是一个全功能的SQL工具包和对象关系映射(ORM)库,提供了更高级的数据库操作接口。

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# 创建数据库引擎
engine = create_engine('sqlite:///mydatabase.db')
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 查询数据
users = session.query(User).all()
# 关闭会话
session.close()

以上是一些常见的数据库编程接口示例。根据所使用的数据库类型、项目需求和个人偏好,你可以选择合适的接口来进行数据库操作。每种接口都有其特定的优势和适用场景。

二、连接对象和游标对象

       在数据库编程中,连接对象和游标对象是两个重要的概念。它们用于执行数据库操作,但具有不同的角色和功能。

1. 连接对象(Connection Object)

       连接对象是用于建立与数据库之间的物理连接。它包含了连接数据库所需的所有信息,如主机名、用户名、密码、数据库名等。连接对象还管理着与数据库之间的通信通道,并支持事务管理。一个连接对象可以被多个游标对象所共享,但在多线程环境中需要小心处理,以避免竞争条件。

通常,连接对象的方法包括:

  • cursor(): 创建一个游标对象,用于执行SQL语句和处理查询结果。
  • commit(): 提交事务,将之前的操作永久保存到数据库。
  • rollback(): 回滚事务,撤销之前的操作。
  • close(): 关闭连接,释放资源。
  • 表1. 创建连接对象connect()函数常用的参数及说明
  • 表2. 连接对象的方法

2. 游标对象(Cursor Object)

       游标对象用于执行SQL语句并处理查询结果。每个游标对象都与一个连接对象相关联,通过连接对象创建。游标对象允许你在连接上执行多个SQL操作,并且可以逐行处理查询结果。

游标对象通常的方法包括:

  • execute(sql, params): 执行SQL语句,可以使用参数。
  • fetchone(): 获取查询结果中的下一行数据。
  • fetchall(): 获取所有查询结果的行数据。
  • fetchmany(size): 获取指定数量的查询结果行数据。
  • close(): 关闭游标,释放资源。
  • 表3 游标对象的方法

示例代码(使用sqlite3库):

import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('mydatabase.db')
# 创建游标对象
cursor = conn.cursor()
# 执行查询语句
cursor.execute("SELECT * FROM users")
# 获取查询结果
rows = cursor.fetchall()
# 遍历和处理结果
for row in rows:
    print(row)
# 关闭游标和连接
cursor.close()
conn.close()

        连接对象用于管理物理连接,游标对象用于执行和处理数据库操作。在进行数据库操作时,要确保适当地管理连接和游标,以避免资源泄露和其他问题。

三、数据库连接配置

       数据库连接配置是在应用程序中指定用于连接数据库的各种参数,包括主机、端口、用户名、密码、数据库名称、字符集等。这些参数在建立与数据库的连接时起着关键作用。以下是一个典型的数据库连接配置示例:

1 MySQL 数据库连接配置示例

对于连接到MySQL数据库,常见的连接配置包括:

  1. 主机和端口:数据库服务器的主机名或IP地址以及连接端口。
  2. 用户名和密码:用于进行身份验证的用户名和密码。
  3. 数据库名称:要连接的具体数据库的名称。
  4. 字符集:在连接过程中要使用的字符集,以确保正确的数据交换。
import mysql.connector
# 配置数据库连接参数
config = {
    "host": "localhost",   # 主机
    "port": 3306,          # 端口
    "user": "username",    # 用户名
    "password": "password",
    "database": "mydb",    # 数据库名称
    "charset": "utf8mb4"   # 字符集
}
# 建立数据库连接
conn = mysql.connector.connect(**config)

2 PostgreSQL 数据库连接配置示例

对于连接到PostgreSQL数据库,连接配置可能包括:

  1. 主机和端口:数据库服务器的主机名或IP地址以及连接端口。
  2. 用户名和密码:用于进行身份验证的用户名和密码。
  3. 数据库名称:要连接的具体数据库的名称。
import psycopg2
# 配置数据库连接参数
conn = psycopg2.connect(
    host="localhost",     # 主机
    port="5432",          # 端口
    user="username",      # 用户名
    password="password",
    database="mydb"       # 数据库名称
)

3 SQLite 数据库连接配置示例

       对于连接到SQLite数据库,连接配置通常只涉及文件路径,因为SQLite数据库是嵌入式的,存储在本地文件中。

import sqlite3
# 配置数据库连接参数(文件路径)
conn = sqlite3.connect('mydatabase.db')

       在实际应用中,根据所使用的数据库库和数据库服务器的配置,你需要适当地调整连接配置参数。连接配置的目的是为了在应用程序中建立与数据库的可靠连接,以便进行数据交换和操作。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
安全 网络安全 数据安全/隐私保护
|
11天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
1月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
229 15
|
2月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
2月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
2月前
|
JSON Shell Linux
配置Python的环境变量可
配置Python的环境变量
264 4
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
66 3
|
2月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
54 1
|
2月前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
64 1