python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python连接数据库

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

作者:深度学习0407

这篇文章主要介绍了Python连接数据库进行数据查询的操作代码,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

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()
您可能感兴趣的文章:
阅读全文