翼度科技»论坛 编程开发 python 查看内容

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

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
mysql数据库(mariadb)




连接数据库

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

创建Cursor对象

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



模块安装

python3 安装
  1. pip3 install mysqlclient
复制代码



代码
  1. # 引入模块
  2. import MySQLdb
  3. # 连接数据库
  4. db = MySQLdb.connect(host="localhost", user="your_username", passwd="your_password", db="your_database")
  5. # 创建cursor对象
  6. cursor = db.cursor()
  7. 使用Cursor执行SQL语句:创建了cursor对象之后,你可以使用它的execute()方法来执行SQL语句。例如,你可以执行SELECT查询来从数据库中检索数据,或者执行INSERT、UPDATE、DELETE等语句来修改数据。
  8. # 执行SQL查询
  9. cursor.execute("SELECT * FROM your_table")
  10. 获取查询结果:如果执行的是查询(如SELECT语句),你可以使用cursor对象的fetchone()、fetchmany()或fetchall()方法来获取结果。
  11. # 获取所有查询结果
  12. results = cursor.fetchall()
  13. for row in results:
  14.     print(row)
  15. 关闭Cursor和连接:完成数据库操作后,你应该关闭cursor对象并关闭数据库连接,以释放资源。
  16. # 关闭cursor
  17. cursor.close()
  18. # 关闭数据库连接
  19. db.close()
复制代码
cursor对象的fetchone()、fetchmany(size)和fetchall()方法是用于从游标中检索由execute()方法执行的查询结果的三种不同方法。它们的主要区别在于它们检索结果的方式和数量:
fetchone():
这个方法每次检索结果集的下一行。
它返回一个包含下一行数据的元组,如果没有更多的行,则返回None。
使用fetchone()通常在逐行处理结果集时非常有用。
  1. cursor.execute("SELECT * FROM your_table")
  2. while True:
  3.     row = cursor.fetchone()
  4.     if row is None:
  5.         break
  6.     print(row)
复制代码
fetchmany(size):
这个方法检索结果集中的下size行。
size参数指定要检索的行数。如果结果集中剩余的行数少于size,则返回剩余的行。
如果size参数被省略或设置为负数,fetchmany()将尝试检索剩余的所有行。
使用fetchmany()可以在一次调用中获取多行数据。
  1. cursor.execute("SELECT * FROM your_table")
  2. result = cursor.fetchmany(3)  # 获取3行数据
  3. for row in result:
  4.     print(row)
复制代码
fetchall():
这个方法检索结果集中的所有(剩余的)行。
它返回一个列表,列表中的每个元素都是一行数据的元组。
使用fetchall()可以一次性获取查询结果的所有行,这对于处理不是非常大的数据集非常有用。
  1. cursor.execute("SELECT * FROM your_table")
  2. results = cursor.fetchall()
  3. for row in results:
  4.     print(row)
复制代码
选择哪种方法取决于你的具体需求,比如你希望如何从数据库中检索数据,以及你的应用程序如何处理这些数据。如果你需要逐行处理数据,fetchone()可能是一个好选择。如果你知道需要检索的数据量不是很大,或者你想一次性获取所有数据进行处理,fetchall()可能更合适。而fetchmany()提供了一种折衷的方法,允许你分批次地获取数据,这在处理大量数据时可以减少内存的使用。

Oracle数据库

连接数据库

使用Python连接到Oracle数据库,你可以使用cx_Oracle这个第三方库,它是专门用于Oracle数据库的Python扩展。以下是连接到Oracle数据库的步骤:
模块安装

安装cx_Oracle。可以使用pip来安装:
  1. pip install cx_Oracle
复制代码
代码
  1. import cx_Oracle
  2. # 连接到Oracle数据库
  3. # 方法1: 使用连接字符串
  4. dsn = cx_Oracle.makedsn('hostname', port, service_name='service_name')
  5. connection = cx_Oracle.connect('username', 'password', dsn)
  6. # 方法2: 分别提供连接参数
  7. # connection = cx_Oracle.connect('username', 'password', 'hostname', port, service_name='service_name')
  8. # 使用cursor执行SQL语句
  9. cursor = connection.cursor()
  10. cursor.execute("SELECT * FROM your_table")
  11. # 获取查询结果
  12. results = cursor.fetchall()
  13. for row in results:
  14.     print(row)
  15. # 关闭cursor和连接
  16. cursor.close()
  17. connection.close()
复制代码
SQL server数据库

连接数据库

使用Python连接到SQL Server数据库,你可以使用pyodbc库,这是一个流行的Python ODBC接口。以下是连接到SQL Server数据库的步骤:
模块安装

使用pip安装pyodbc库:
  1. pip install pyodbc
复制代码
代码
  1. import pyodbc
  2. # 连接到SQL Server数据库
  3. conn_str = (
  4.     r'DRIVER={ODBC Driver 17 for SQL Server};'
  5.     r'SERVER=your_server_name;'
  6.     r'DATABASE=your_database_name;'
  7.     r'UID=your_username;'
  8.     r'PWD=your_password'
  9. )
  10. conn = pyodbc.connect(conn_str)
  11. # 创建cursor对象
  12. cursor = conn.cursor()
  13. # 执行SQL语句
  14. cursor.execute("SELECT * FROM your_table")
  15. # 获取查询结果
  16. results = cursor.fetchall()
  17. for row in results:
  18.     print(row)
  19. # 关闭cursor和连接
  20. cursor.close()
  21. conn.close()
复制代码
来源:https://www.jb51.net/python/322309yoj.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具