Python数据库编程之conn.execute

一、概述

在Python中,为了操作数据库,我们需要先连接数据库。连接成功后可以利用execute()方法执行SQL语句。conn.execute()是一个用于执行对数据库的增、删、改、查等操作的方法。

二、执行SQL语句

conn.execute()方法用于执行SQL语句。我们可以使用该方法执行增、删、改、查表数据等操作。例如,如果我们需要查询一个表中的所有数据,并打印出每一行的所有字段,则可以使用如下代码:

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.execute("SELECT * from COMPANY")
for row in cursor:
    print(row)
conn.close()

上述代码中,我们连接了一个SQLite数据库,并执行了一个SELECT语句查询了一个名为COMPANY的表中的所有数据。并通过cursor变量迭代每一行数据进行输出。

三、插入数据

使用Python编程语言,我们可以在数据库中执行插入语句。例如,如果我们需要将一些数据插入到一个名为COMPANY的表中,则可以使用如下代码:

import sqlite3

conn = sqlite3.connect('example.db')
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )")

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00 )")

conn.commit()
print("Records created successfully")
conn.close()

上述代码中,我们定义了4个要插入的数据行,然后通过conn.execute()方法使用INSERT INTO语句进行插入操作,最后还需要通过commit()方法进行提交操作,才能真正将数据插入到表中。

四、更新数据

我们可以使用Python的conn.execute()方法更新一条或多条数据。例如,如果需要更新名为COMPANY表中ID为1的记录的地址和薪水数据,则可以使用如下代码:

import sqlite3

conn = sqlite3.connect('example.db')
conn.execute("UPDATE COMPANY set ADDRESS = 'Texas' where ID = 1")
conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.commit()
print("Total number of rows updated :", conn.total_changes)

cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
    print(row)
conn.close()

上述代码中,我们使用UPDATE语句将ID为1的地址更新为Texas,将薪水更新为25000.00,并通过cursor变量迭代每一行数据进行输出。

五、删除数据

我们可以使用Python的conn.execute()方法删除一行或多行数据。例如,如果我们要删除名为COMPANY中ID为2的记录,则可以使用如下代码:

import sqlite3

conn = sqlite3.connect('example.db')
conn.execute("DELETE from COMPANY where ID = 2;")
conn.commit()
print("Total number of rows deleted :", conn.total_changes)

cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
    print(row)
conn.close()

上述代码中,我们使用DELETE语句删除ID为2的记录,并通过cursor变量迭代每一行数据进行输出。

六、事务

如果有一个以上的操作需要在一个事务中完成,那么我们可以使用Python的事务支持,将多个操作组合在一起。例如,如果我们需要同时更新一个名为COMPANY的表和一个名为DEPARTMENT的表,则可以使用如下代码:

import sqlite3

conn = sqlite3.connect('example.db')
print("Opened database successfully")

conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.execute("DELETE from COMPANY where ID = 2;")

cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
    print(row)

conn.execute("INSERT INTO DEPARTMENT (ID,DEPT,EMP_ID) \
      VALUES (1, 'IT', 1 )")
conn.execute("INSERT INTO DEPARTMENT (ID,DEPT,EMP_ID) \
      VALUES (2, 'HR', 2 )")

cursor = conn.execute("SELECT id, dept, emp_id from DEPARTMENT")
for row in cursor:
    print(row)

conn.commit()
print("Transaction completed successfully")
conn.close()

上述代码中,我们在一个事务中进行了多个操作,即通过UPDATE、DELETE语句更新和删除COMPANY表的数据,再通过INSERT INTO语句向DEPARTMENT表中插入数据和查询DEPARTMENT表中的数据。

七、错误处理

在编写代码的过程中,我们需要注意异常处理,以确保代码在运行时不会出现不必要的错误。如果接收到问题,Python将引发异常,我们可以使用try … except语句处理它。

import sqlite3

try:
    conn = sqlite3.connect('example.db')

    conn.execute("UPDATE COMPANY set SALARY = 35000.00 where ID = 1")
    conn.execute("DELETE from COMPANY where ID = 2;")

    cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
    for row in cursor:
        print(row)

    conn.execute("INSERT INTO DEPARTMENT (ID,DEPT,EMP_ID) \
          VALUES (1, 'IT', 1 )")
    conn.execute("INSERT INTO DEPARTMENT (ID,DEPT,EMP_ID) \
          VALUES (2, 'HR', 2 )")

    conn.commit()
    print("Transaction completed successfully")
except Exception as e:
    print("Transaction failed", e)
finally:
    conn.close()

在上述代码中,我们在try块中执行多个操作,如果其中任何一个操作出现问题,整个事务都会下跌到except块中,最后使用finally块关闭连接。

八、总结

conn.execute()方法是一个用于执行对数据库的增、删、改、查等操作的SQL语句的方法。我们可以通过该方法执行各种SQL语句,如SELECT、INSERT、UPDATE、DELETE等操作,也可以利用Python的事务支持将多个操作组合在一起。在编写代码时,我们需要注意异常处理,以确保代码在运行时不会出现不必要的错误。

原创文章,作者:UUTS,如若转载,请注明出处:https://www.506064.com/n/138334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
UUTSUUTS
上一篇 2024-10-04 00:19
下一篇 2024-10-04 00:19

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29

发表回复

登录后才能评论