Python连接数据库进行数据查询的操作代码
作者:深度学习0407
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()