您的位置:首页 > 数据库 > MySQL

Navicat使用教程:如何在MySQL中定位和删除有重复意义的值

2019-01-29 10:04 357 查看

下载Navicat Premium最新版本

Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。

DBA最大的麻烦之一是处理重复数据。不管我们如何防范,重复数据总是会设法进入到表格。重复数据是一个大问题,因为它会影响应用程序视图(每个项都应该是唯一的)、扭曲统计信息,在严重情况下还会增加服务器开销。

在本技巧中,我们将学习如何识别MySQL中的重复数据,以及如何删除它们而不删除宝贵的有效数据。

重复类型

您将遇到的大多数重复记录是两种不同类型之一:重复含义和非唯一键。在本篇文章中,我们将处理重复含义;在下篇文章中,我们将处理非唯一键。

当副本不是副本时

重复意义是最常见的重复类型。在这种情况下,两个或多个字段的内容不相同,但它们的含义是相同的。你可以把它看作是语义上的重复数据。

考虑下表摘录:

在媒体专栏中,“Television”和“TV”两个词条的含义相同,但表达方式不同。这个问题通常是由使用自由文本输入引起的,有限的下拉列表是更好的选择。

这种类型的复制处理起来非常困难,因为不能使用select distinct排除重复项。

有两种方法可以解决这个问题:

1.使用replace()选择数据,将不需要的值替换为希望看到的值:

2.更新实际表数据。下面是一个声明,用首选的“TELEVISION”值更新“TV”的所有实例:

下面是一个真实的例子!

一些不需要的卷曲撇号进入了数据。注意“O'BRIEN”和“O'BRIEN”条目:

我们可以像上面那样处理这个问题:

1.使用replace()选择数据,用常规的单引号替换大撇号,这样我们就可以始终处理相同的字符:

2.更新实际表数据。此语句用常规单引号更新姓氏列中的所有撇号:

结论

重复记录、双精度、冗余数据、重复行;无论您如何称呼它们,它们都是DBA生命中最大的缺陷之一。然而,重要的是要定期清除它们,以免产生错误的统计数据并混淆与数据库交互的用户。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 MySQL Oracle