文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-08-31 13:17

关注

目录

 专栏导读 

一、数据库编程接口

1. Python标准库接口

2. MySQL Connector/Python接口

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

4. SQLAlchemy接口

二、连接对象和游标对象

1. 连接对象(Connection Object)

2. 游标对象(Cursor Object) 

三、数据库连接配置

1 MySQL 数据库连接配置示例

 2 PostgreSQL 数据库连接配置示例

 3 SQLite 数据库连接配置示例


 专栏导读 

专栏订阅地址: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_enginefrom 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')

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

来源地址:https://blog.csdn.net/qq_35831906/article/details/132203556

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯