3K+ 浏览量
有很多错误来源。一些例子包括执行的 SQL 语句中的语法错误、连接失败或对已取消或已完成的语句句柄调用 fetch 方法。DB API 定义了许多必须存在于每个数据库模块中的错误。下表列出了这些异常。序号异常及说明1警告用于非致命性问题。必须是 StandardError 的子类。2错误错误的基类。必须是 StandardError 的子类。3接口错误用于数据库模块中的错误,而不是数据库本身。必须是 Error 的子类。4数据库错误用于数据库中的错误。必须是 Error 的子类。5数据错误DatabaseError 的子类,指数据中的错误。6操作错误DatabaseError 的子类…… 阅读更多
5K+ 浏览量
要断开数据库连接,请使用 close() 方法。db.close()如果用户使用 close() 方法关闭与数据库的连接,则 DB 会回滚任何未完成的事务。但是,与其依赖任何 DB 底层实现细节,不如在应用程序中显式调用 commit 或 rollback。
553 浏览量
COMMITCOMMIT 是一个操作,它向数据库发出确认更改的信号,此操作之后,任何更改都无法撤销。以下是一个调用 commit 方法的简单示例。db.commit()ROLLBACK如果您对一个或多个更改不满意,并且想要完全撤销这些更改,则可以使用 rollback() 方法。以下是一个调用 rollback() 方法的简单示例。db.rollback()
1K+ 浏览量
事务是一种确保数据一致性的机制。事务具有以下四个属性:原子性- 事务要么完成,要么什么也不发生。一致性- 事务必须从一致状态开始,并使系统处于一致状态。隔离性- 事务的中间结果在其当前事务之外不可见。持久性- 一旦事务提交,其效果就会持久存在,即使在系统故障之后也是如此。Python DB API 2.0 提供两种方法来提交或回滚事务。示例您已经知道如何实现事务。这里还有一个类似的示例:# 准备 SQL 查询以删除所需的记录 sql ... 阅读更多
228 浏览量
当您想要从数据库中删除一些记录时,需要 DELETE 操作。以下是从 EMPLOYEE 中删除 AGE 大于 20 的所有记录的过程:示例#!/usr/bin/python import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用 cursor() 方法准备游标对象 cursor = db.cursor() # 准备 SQL 查询以删除所需的记录 sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20) try: # 执行 SQL 命令 cursor.execute(sql) # 提交数据库中的更改 db.commit() except: # 回滚错误情况… 阅读更多
404 浏览量
任何数据库上的 UPDATE 操作都意味着要更新数据库中已存在的记录。以下过程更新所有 SEX 为 'M' 的记录。在这里,我们将所有男性的 AGE 增加一年。示例#!/usr/bin/python import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用 cursor() 方法准备游标对象 cursor = db.cursor() # 准备 SQL 查询以更新所需的记录 sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M') try: # 执行 SQL 命令 cursor.execute(sql) # 提交… 阅读更多
669 浏览量
任何数据库上的 READ 操作都意味着从数据库中获取一些有用的信息。一旦建立了数据库连接,您就可以开始向该数据库查询。您可以使用 fetchone() 方法获取单条记录,或使用 fetchall() 方法从数据库表中获取多条记录。fetchone() - 获取查询结果集的下一行。结果集是在使用游标对象查询表时返回的对象。fetchall() - 获取结果集中的所有行。如果结果集中的某些行已经被提取…… 阅读更多
421 浏览量
当您想在数据库表中创建记录时,需要此操作。示例以下示例执行 SQL INSERT 语句,以在 EMPLOYEE 表中创建一个记录:#!/usr/bin/python import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用 cursor() 方法准备游标对象 cursor = db.cursor() # 准备 SQL 查询以将记录插入数据库。 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # 执行 SQL 命令 cursor.execute(sql) # 提交数据库中的更改 db.commit() except: # … 阅读更多
322 浏览量
一旦建立了数据库连接,我们就可以使用已创建游标的 execute 方法在数据库表中创建表或记录。示例让我们创建数据库表 EMPLOYEE:#!/usr/bin/python import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用 cursor() 方法准备游标对象 cursor = db.cursor() # 使用 execute() 方法删除表(如果已存在)。 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 根据要求创建表 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # … 阅读更多
594 浏览量
在连接到 MySQL 数据库之前,请确保以下几点:您已创建数据库 TESTDB。您已在 TESTDB 中创建表 EMPLOYEE。此表包含字段 FIRST_NAME、LAST_NAME、AGE、SEX 和 INCOME。已设置用户 ID“testuser”和密码“test123”以访问 TESTDB。Python 模块 MySQLdb 已正确安装在您的机器上。您已阅读 MySQL 教程以了解 MySQL 基础知识。示例以下是连接到 MySQL 数据库“TESTDB”的示例#!/usr/bin/python import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" ) # 使用 cursor() 方法准备游标对象 cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询…… 阅读更多