SQL pyodbc 插入数据

SQL pyodbc 插入数据

在本文中,我们将介绍如何使用pyodbc库向SQL数据库中插入数据的方法。

阅读更多:SQL 教程

连接到数据库

首先,我们需要导入pyodbc库并连接到我们的SQL数据库。在连接之前,我们需要安装pyodbc库,并确保数据库服务器可用。

import pyodbc

# 连接到SQL数据库
conn = pyodbc.connect(
    "Driver={SQL Server};"
    "Server=myserver;"
    "Database=mydatabase;"
    "UID=myusername;"
    "PWD=mypassword;"
)
Python

上述代码中,我们使用pyodbc.connect()函数建立了一个到SQL数据库的连接。在连接字符串中,我们指定了数据库服务器、数据库名称以及登录凭据。

插入单条数据

接下来,我们将向数据库插入一条数据。首先,我们需要创建一个SQL语句来执行插入操作,并使用cursor.execute()函数执行SQL语句。

假设我们有一个名为”employees”的表,包含”first_name”、”last_name”和”salary”三个列。我们要插入一条员工记录,可以按如下方式实现:

# 创建一个游标对象
cursor = conn.cursor()

# 插入一条数据
sql = "INSERT INTO employees (first_name, last_name, salary) VALUES (?, ?, ?)"
cursor.execute(sql, ('John', 'Doe', 5000))

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
Python

在上述代码中,我们使用?作为占位符,以防止SQL注入攻击。我们将具体的值作为参数传递给cursor.execute()函数,这样可以安全地插入数据。

请注意,我们还调用了conn.commit()函数来提交事务,并使用cursor.close()和conn.close()函数来关闭游标和连接。

插入多条数据

如果我们要插入多条数据,可以使用cursor.executemany()函数。该函数接受一个SQL语句和一个包含多个参数的列表。

# 创建一个游标对象
cursor = conn.cursor()

# 插入多条数据
sql = "INSERT INTO employees (first_name, last_name, salary) VALUES (?, ?, ?)"
data = [('Alice', 'Smith', 6000), ('Bob', 'Johnson', 7000), ('Charlie', 'Williams', 8000)]
cursor.executemany(sql, data)

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
Python

在上述代码中,我们将多条数据存储在一个列表中,并将该列表作为参数传递给cursor.executemany()函数。

使用参数化查询

为了防止SQL注入攻击,我们应该使用参数化查询。参数化查询将具体的值作为参数传递给SQL语句,而不是将值直接包含在SQL语句中。

# 创建一个游标对象
cursor = conn.cursor()

# 插入一条数据
sql = "INSERT INTO employees (first_name, last_name, salary) VALUES (?, ?, ?)"
params = ('John', 'Doe', 5000)
cursor.execute(sql, params)

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()
Python

在上述代码中,我们将具体的值存储在一个元组中,并将该元组作为参数传递给cursor.execute()函数,以实现参数化查询。

错误处理

在插入数据时,可能会发生错误。我们可以使用try-except语句来捕获并处理可能发生的异常。

# 创建一个游标对象
cursor = conn.cursor()

# 插入一条数据
try:
    sql = "INSERT INTO employees (first_name, last_name, salary) VALUES (?, ?, ?)"
    cursor.execute(sql, ('John', 'Doe', 5000))
    conn.commit()
    print("数据插入成功!")
except Exception as e:
    conn.rollback()
    print("数据插入失败:" + str(e))

# 关闭游标和连接
cursor.close()
conn.close()
Python

在上述代码中,我们使用try-except语句来捕获异常。如果发生异常,我们使用conn.rollback()函数回滚事务,并打印出错误消息。

总结

通过pyodbc库,我们可以轻松地向SQL数据库中插入数据。我们介绍了连接到数据库、插入单条数据、插入多条数据、使用参数化查询以及错误处理的方法。希望本文对你在使用pyodbc进行数据库操作时有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册