欢迎访问宙启技术站
智能推送

Python中的数据库函数:连接数据库和查询操作

发布时间:2023-06-01 12:13:03

Python为开发者提供了多种数据库模块来连接和操作不同类型的数据库。本文将介绍如何使用Python来连接数据库和进行查询操作。

1. 连接数据库

对于使用Python进行数据库操作,首先需要使用连接字符串来连接数据库。连接字符串包括数据库类型(MySQL、Oracle、MSSQL等)、主机名、端口号、用户名、密码、数据库名称等信息。连接字符串的格式如下:

conn = pymysql.connect(host='localhost', 
    user='root', 
    password='123456', 
    database='test', 
    port=3306, 
    charset='utf8')

这里以MySQL作为例子,pymysql是Python的一个MySQL数据库驱动,需要使用pip安装。另外还可以使用其他数据库驱动,如cx_Oracle、pyodbc等。

使用以上命令可以建立与MySQL数据库服务器的连接,其中host表示主机名,user表示用户名,password表示密码,database表示要连接的数据库名称,port表示要连接的端口号。charset表示字符集编码。

2. 查询操作

2.1 简单查询

在Python中,使用cursor对象来执行SQL语句并获得查询结果。可以使用以下语句来查询数据库:

cursor = conn.cursor() # 创建游标对象
cursor.execute("SELECT * FROM t_users") # 执行SQL语句
result = cursor.fetchall() # 获取查询结果

以上语句表示查询t_users表中的所有记录。由于要获取表中的所有记录,因此使用了fetchall()方法,该方法返回所有查询结果。其他方法还包括fetchone()和fetchmany(),分别表示获取一条记录和获取多条记录。

2.2 参数化查询

在实际开发中,很多时候需要使用参数化查询来防止SQL注入攻击。SQL注入攻击是一种攻击类型,攻击者在请求URL或表单中注入SQL语句,从而查询、修改或删除数据库中的数据。以下是使用参数化查询的示例代码:

cursor = conn.cursor() # 创建游标对象
sql = "SELECT * FROM t_users WHERE username=%s" # SQL语句
cursor.execute(sql, ('tom', )) # 执行SQL语句并传入参数
result = cursor.fetchall() # 获取查询结果

以上代码表示查询用户名为tom的用户信息。第二个参数传入了元组('tom', ),该元组中只有一个元素表示查询条件。注意,元组中必须使用逗号将元素隔开。

2.3 处理查询结果

在获取查询结果时,返回的是一个元组,每个元素表示一条记录,每个字段以相应名称作为键值对存在其中。可以使用以下代码对查询结果进行处理:

for row in result:
    username = row['username']
    password = row['password']
    print(username, password)

以上代码表示遍历查询结果,并提取其中的用户名和密码,最后打印出来。

总结

Python提供了多种模块来连接和操作不同数据库,本文以MySQL为例介绍了如何连接MySQL数据库和进行查询操作。在实际开发中,应该使用参数化查询来防止SQL注入攻击,同时还需要对查询结果进行处理来达到预期的结果。