SQL教程:如何恢复表格中已删除重复项的数据库? (表格删除重复项后怎么恢复数据库)

在进行数据库操作时,删除重复的数据是非常常见的场景。但是,如果不小心将重复数据删除后,后悔仍然有机会。在 SQL 数据库中,还原已删除数据是一项基本技能。在这篇教程中,我们将探讨如何使用 SQL 恢复表格中已删除重复项的数据。

1. 创建测试数据库

为了演示如何恢复数据库,我们需要先创建一个可以测试的数据库。在此,我们将使用 MySQL 数据库。按照以下步骤操作:

“`

CREATE DATABASE test_db;

USE test_db;

CREATE TABLE customers (

id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(30) NOT NULL,

eml VARCHAR(50)

);

INSERT INTO customers (name, eml) VALUES (‘Cady’, ‘cady@test.com’);

INSERT INTO customers (name, eml) VALUES (‘Jason’, ‘jason@test.com’);

INSERT INTO customers (name, eml) VALUES (‘Cady’, ‘cady@test.com’);

INSERT INTO customers (name, eml) VALUES (‘Relle’, ‘relle@test.com’);

INSERT INTO customers (name, eml) VALUES (‘Relle’, ‘relle@test.com’);

INSERT INTO customers (name, eml) VALUES (‘Lily’, ‘lily@test.com’);

“`

在这里我们创建了一个名为 `test_db` 的数据库,并在其中创建了名为 `customers` 的表格。通过 `INSERT` 语句添加了 6 条记录,前两条记录是不重复的,接下来的两条记录是重复的,最后两条记录也是重复的。

2. 查看重复项

我们可以使用 SQL 查询语句查看重复项。执行以下查询语句:

“`

SELECT name, eml, COUNT(*) c FROM customers

GROUP BY name, eml

HAVING c > 1;

“`

输出结果如下:

“`

+——-+—————-+—+

| name | eml | c |

+——-+—————-+—+

| Cady | cady@test.com | 2 |

| Relle | relle@test.com | 2 |

+——-+—————-+—+

“`

我们可以看到,输出结果中有两个名为 “Cady” 和 “Relle” 的重复记录。

3. 删除重复项

接下来,我们将使用 SQL 删除语句删除重复项。执行以下语句:

“`

DELETE FROM customers WHERE id IN (

SELECT MIN(id) FROM customers

GROUP BY name, eml

HAVING COUNT(*) > 1

);

“`

执行以上语句后,我们可以再次查询数据库中的内容,如下所示:

“`

SELECT * FROM customers;

“`

输出结果如下:

“`

+—-+——-+—————-+

| id | name | eml |

+—-+——-+—————-+

| 1 | Cady | cady@test.com |

| 2 | Jason | jason@test.com |

| 4 | Relle | relle@test.com |

| 6 | Lily | lily@test.com |

+—-+——-+—————-+

“`

我们可以看到,经过删除后,数据库中只剩下了 4 条记录,其中重复的条目已经被删除了。

4. 恢复重复项

现在,如果我们希望恢复已删除的重复项,我们可以使用 SQL INSERT INTO 语句。具体操作如下:

“`

INSERT INTO customers (name, eml)

SELECT name, eml FROM (

SELECT name, eml, COUNT(*) c FROM customers

GROUP BY name, eml

HAVING c > 1

) temp

ORDER BY name;

“`

执行以上语句后,我们再次查询数据库,数据如下:

“`

+—-+——-+—————-+

| id | name | eml |

+—-+——-+—————-+

| 1 | Cady | cady@test.com |

| 2 | Jason | jason@test.com |

| 3 | Cady | cady@test.com |

| 4 | Relle | relle@test.com |

| 5 | Relle | relle@test.com |

| 6 | Lily | lily@test.com |

+—-+——-+—————-+

“`

我们可以看到,恢复了两个重复的条目。

结论

在 SQL 中,我们可以轻松地恢复已删除的重复项。我们还可以使用不同的 SQL 查询和删除语句来适应实际情况。请记住,恢复数据之前,请确保先备份数据以供以后参考。


数据运维技术 » SQL教程:如何恢复表格中已删除重复项的数据库? (表格删除重复项后怎么恢复数据库)