跳转到主内容
极星编程网:以代码为星,赴技术山海!

SQL Delete使用示例详解

目录语法需求示例分析代码语法DELETE删除表中所需内容删除表中满足特点条件的行:DELETE FROM 表名 WHERE 条件;删除表中所有行:DELETE FROM 表名;WHERE子句WHERE子句用于指定从表中选取记录的条件。

允许筛选数据,只返回满足特定条件的记录。

WHERE子句可以包含各种条件,这些条件可以基于一个或多个列的值。

可以使用逻辑运算符(如AND、OR、NOT)来组合多个条件。

后文示例可供提供and和not的用法。

子查询子查询(Sub Query)或称为内查询(Inner Query)、嵌套查询(Nested Query),是SQL语言中一种常用的程序模块,用于在一个查询语句中嵌套另一个查询语句。当一个查询的结果是另一个查询的条件时,这个查询就被称为子查询。

子查询必须括在圆括号中。子查询SELECT子句通常只有一个列,除非主查询中多个列与子查询中的列进行比较。子查询不能直接使用ORDER BY,但可以在子查询中使用GROUP BY。返回多行数据的子查询只能与多值操作符(如IN)一起使用。

需求表:Person+-------------+---------+

| Column Name | Type    |

+-------------+---------+

| id          | int     |

| email       | varchar |

+-------------+---------+

id 是该表的主键列(具有唯一值的列)。

该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。

编写解决方案删除所有重复的电子邮件,只保留一个具有最小id的唯一电子邮件。

运行脚本后,显示的答案是Person表。驱动程序将首先编译并运行代码片段,然后再显示Person表。

Person表的最终顺序无关紧要。

示例

输入:

Person 表:

+----+------------------+

| id | email            |

+----+------------------+

| 1  | john@example.com |

| 2  | bob@example.com  |

| 3  | john@example.com |

+----+------------------+

输出:

+----+------------------+

| id | email            |

+----+------------------+

| 1  | john@example.com |

| 2  | bob@example.com  |

+----+------------------+分析编写解决方案 删除 所有重复的电子邮件,只保留一个具有最小 id 的唯一电子邮件。

相当于删除所有id较大且重复的电子邮箱仅提供一个Person表,包含id和email可以直接作笛卡尔积,比较id大小和电子邮箱,删除所有id较大且相同的电子邮箱通过where语句和and并列即可实现,where a.id>b.id and a.email=b.email同样的思路,也可以通过子查询实现通过子查询查找id最小的电子邮箱,select min(id) as id from Person group by email再通过where not in 剔除其他信息where id not in (select id from (select min(id) as id from Person group by email) u)代码delete a from Person a, Person b where a.id>b.id and a.email=b.emailORdelete from Person where id not in (select id from (select min(id) as id from Person group by email) a)

到此这篇关于SQL Delete使用的文章就介绍到这了,更多相关SQL Delete使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Mysql数据库如何使用DELETE语句从数据库表中删除数据(数据库数据删除) MySQL语句之删除指令deleted和truncate在使用中的异同详解解析MySQL中DELETE语句中别名的使用MySQL中UPDATE与DELETE语句的使用教程mysql delete limit 使用方法详解ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享sqlserver中delete、update中使用表别名和oracle的区别MySQL DELETE语法使用详细解析MySQL删除数据Delete与Truncate语句使用比较

相关文章