如何在 Python 中使用 MySQL 从表中删除记录?


有时我们可能需要从表中删除某些行。假设,我们有一个班级学生详细信息的表。可能其中一个学生离开了班级,因此我们不再需要该特定学生的信息。因此,我们需要从表中删除该特定行或记录。

MySQL 中的“DELETE FROM”语句用于从表中删除一行或记录,“WHERE”子句用于指定要删除的行。如果不使用 WHERE 子句,则所有记录都将被删除。

语法

删除所有行

DELETE FROM table_name

删除特定行

DELETE FROM table_name WHERE condition

使用 Python 中的 MySQL 从表中删除记录所涉及的步骤

  • 导入 MySQL 连接器

  • 使用 connect() 方法与连接器建立连接

  • 使用 cursor() 方法创建游标对象

  • 使用适当的 MySQL 语句创建查询

  • 使用 execute() 方法执行 SQL 查询

  • 使用 commit() 方法提交所做的更改

  • 关闭连接

假设我们有一个名为“Student”的表,如下所示 −

+----------+---------+-----------+------------+
|    Name  | Class   |    City   |    Marks   |
+----------+---------+-----------+------------+
|    Karan |    4    | Amritsar  |    95      |
|    Sahil |    6    | Amritsar  |    93      |
|    Kriti |    3    | Batala    |    88      |
|   Khushi |    9    | Delhi     |    90      |
|    Kirat |    5    | Delhi     |    85      |
+----------+---------+-----------+------------+

示例

假设,我们有上面学生的表,并且我们想从上表中删除 Kriti 的记录。

import mysql.connector

db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")

cursor=db.cursor()

query="DELETE FROM Students WHERE Name='Kriti'"
cursor.execute(query)
db.commit()
query="SELECT * FROM Students"
cursor.execute(query)
for row in cursor:
   print(row)
db.close()

以上代码从表中删除一行并打印表的剩余行。

输出

(‘Karan’, 4 ,’Amritsar’ , 95)
(‘Sahil’ , 6, ‘Amritsar’ ,93)
(‘Amit’ , 9, ‘Delhi’ , 90)
(‘Priya’ , 5, ‘Delhi’ ,85)

注意

上面代码中的db.commit() 非常重要。它用于提交对表所做的更改。如果不使用 commit(),则不会对表进行任何更改。

更新于: 2021年6月10日

350 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告