当前位置: 代码网 > it编程>前端脚本>Python > Python连接数据库进行数据查询的操作代码

Python连接数据库进行数据查询的操作代码

2024年06月12日 Python 我要评论
mysql数据库(mariadb)连接数据库首先,你需要使用mysqldb.connect()函数建立与mysql数据库的连接。你需要提供数据库服务器的地址(host),用户名(user),密码(pa

mysql数据库(mariadb)

连接数据库

首先,你需要使用mysqldb.connect()函数建立与mysql数据库的连接。你需要提供数据库服务器的地址(host),用户名(user),密码(passwd),以及你想要操作的数据库名称(db)。

创建cursor对象

一旦建立了数据库连接,你可以使用连接对象的cursor()方法来创建一个cursor对象。这个方法返回一个cursor实例,你可以使用这个实例来执行sql查询和命令。

模块安装

python3 安装pip3 install mysqlclient

代码

# 引入模块
import mysqldb
# 连接数据库
db = mysqldb.connect(host="localhost", user="your_username", passwd="your_password", db="your_database")
# 创建cursor对象
cursor = db.cursor()
使用cursor执行sql语句:创建了cursor对象之后,你可以使用它的execute()方法来执行sql语句。例如,你可以执行select查询来从数据库中检索数据,或者执行insert、update、delete等语句来修改数据。
# 执行sql查询
cursor.execute("select * from your_table")
获取查询结果:如果执行的是查询(如select语句),你可以使用cursor对象的fetchone()、fetchmany()或fetchall()方法来获取结果。
# 获取所有查询结果
results = cursor.fetchall()
for row in results:
    print(row)
关闭cursor和连接:完成数据库操作后,你应该关闭cursor对象并关闭数据库连接,以释放资源。
# 关闭cursor
cursor.close()
# 关闭数据库连接
db.close()

cursor对象的fetchone()、fetchmany(size)和fetchall()方法是用于从游标中检索由execute()方法执行的查询结果的三种不同方法。它们的主要区别在于它们检索结果的方式和数量:

fetchone():
这个方法每次检索结果集的下一行。
它返回一个包含下一行数据的元组,如果没有更多的行,则返回none。
使用fetchone()通常在逐行处理结果集时非常有用。

cursor.execute("select * from your_table")
while true:
    row = cursor.fetchone()
    if row is none:
        break
    print(row)

fetchmany(size):
这个方法检索结果集中的下size行。
size参数指定要检索的行数。如果结果集中剩余的行数少于size,则返回剩余的行。
如果size参数被省略或设置为负数,fetchmany()将尝试检索剩余的所有行。
使用fetchmany()可以在一次调用中获取多行数据。

cursor.execute("select * from your_table")
result = cursor.fetchmany(3)  # 获取3行数据
for row in result:
    print(row)

fetchall():
这个方法检索结果集中的所有(剩余的)行。
它返回一个列表,列表中的每个元素都是一行数据的元组。
使用fetchall()可以一次性获取查询结果的所有行,这对于处理不是非常大的数据集非常有用。

cursor.execute("select * from your_table")
results = cursor.fetchall()
for row in results:
    print(row)

选择哪种方法取决于你的具体需求,比如你希望如何从数据库中检索数据,以及你的应用程序如何处理这些数据。如果你需要逐行处理数据,fetchone()可能是一个好选择。如果你知道需要检索的数据量不是很大,或者你想一次性获取所有数据进行处理,fetchall()可能更合适。而fetchmany()提供了一种折衷的方法,允许你分批次地获取数据,这在处理大量数据时可以减少内存的使用。

oracle数据库

连接数据库

使用python连接到oracle数据库,你可以使用cx_oracle这个第三方库,它是专门用于oracle数据库的python扩展。以下是连接到oracle数据库的步骤:

模块安装

安装cx_oracle。可以使用pip来安装:pip install cx_oracle

代码

import cx_oracle
# 连接到oracle数据库
# 方法1: 使用连接字符串
dsn = cx_oracle.makedsn('hostname', port, service_name='service_name')
connection = cx_oracle.connect('username', 'password', dsn)
# 方法2: 分别提供连接参数
# connection = cx_oracle.connect('username', 'password', 'hostname', port, service_name='service_name')
# 使用cursor执行sql语句
cursor = connection.cursor()
cursor.execute("select * from your_table")
# 获取查询结果
results = cursor.fetchall()
for row in results:
    print(row)
# 关闭cursor和连接
cursor.close()
connection.close()

sql server数据库

连接数据库

使用python连接到sql server数据库,你可以使用pyodbc库,这是一个流行的python odbc接口。以下是连接到sql server数据库的步骤:

模块安装

使用pip安装pyodbc库:pip install pyodbc

代码

import pyodbc
# 连接到sql server数据库
conn_str = (
    r'driver={odbc driver 17 for sql server};'
    r'server=your_server_name;'
    r'database=your_database_name;'
    r'uid=your_username;'
    r'pwd=your_password'
)
conn = pyodbc.connect(conn_str)
# 创建cursor对象
cursor = conn.cursor()
# 执行sql语句
cursor.execute("select * from your_table")
# 获取查询结果
results = cursor.fetchall()
for row in results:
    print(row)
# 关闭cursor和连接
cursor.close()
conn.close()
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com