📜  postgresql 删除多行 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:45.313000             🧑  作者: Mango

PostgreSQL 删除多行 - SQL

在 PostgreSQL 中,我们可以使用 SQL 语句来删除多行数据。下面是一些示例以及如何在程序中执行它们。

删除所有数据

如果想要删除一个表中所有数据,可以使用以下 SQL 语句:

DELETE FROM tablename;

其中 tablename 是你要删除数据的表的名称。

在程序中执行这个语句的代码片段可能如下所示:

import psycopg2

conn = psycopg2.connect("dbname=mydatabase user=postgres password=secret")

cur = conn.cursor()

cur.execute("DELETE FROM tablename;")

conn.commit()

cur.close()
conn.close()
删除某些行

如果要删除符合特定条件的行,可以使用以下 SQL 语句:

DELETE FROM tablename WHERE condition;

其中 condition 是你要删除行的条件。例如,如果要删除 age 列中大于等于 30 的行,可以这样写:

DELETE FROM tablename WHERE age >= 30;

在程序中执行这个语句的代码片段可能如下所示:

import psycopg2

conn = psycopg2.connect("dbname=mydatabase user=postgres password=secret")

cur = conn.cursor()

cur.execute("DELETE FROM tablename WHERE age >= 30;")

conn.commit()

cur.close()
conn.close()
删除最新的 N 行

如果要删除最新的 N 行,可以使用以下 SQL 语句:

DELETE FROM tablename WHERE id IN (SELECT id FROM tablename ORDER BY id DESC LIMIT N);

其中 id 是表中的主键,N 是要删除的行数。

在程序中执行这个语句的代码片段可能如下所示:

import psycopg2

conn = psycopg2.connect("dbname=mydatabase user=postgres password=secret")

cur = conn.cursor()

cur.execute("DELETE FROM tablename WHERE id "
            "IN (SELECT id FROM tablename ORDER BY id DESC LIMIT N);")

conn.commit()

cur.close()
conn.close()
总结

这里只是介绍了一些基本的删除语句,你可以根据实际需求编写更复杂的 SQL 语句来删除多行数据。注意在程序中执行 SQL 语句时需要先连接数据库和提交更改,然后关闭连接和游标。