king

mysql快速学习处理重复数据篇(十五)

king Mysql 2018-05-21 2248浏览 0

MySQL 处理重复数据篇


防止表中出现重复数据

MySQL数据表中设置指定的字段为PRIMARY KEY(主键)或者UNIQUE(唯一)索引保证数据的唯一性。

设置表中字段first_namelast_name数据不能重复,你可以设置双主键模式来设置数据的唯一性, 如果你设置了双主键,那么那个键的默认值不能为NULL,可设置为NOT NULL。如下所示:


1

2

3

4

5

6

7

CREATE TABLE person_tbl

(

first_name CHAR(20) NOT NULL,

last_name CHAR(20) NOT NULL,

sexCHAR(10),

PRIMARY KEY (last_name, first_name)

);

INSERT IGNOREINTOINSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。

用了INSERT IGNORE INTO,执行后不会出错,也不会向数据表中插入重复数据:

mysql> INSERT IGNORE INTO person_tbl(last_name, first_name)

->VALUES( 'Jay', 'Thomas');

Query OK, 1 row affected (0.00 sec)

REPLACE INTO into如果存在primary unique相同的记录,则先删除掉。再插入新记录。

UNIQUE(last_name, first_name)

查询重复记录

select user_name,count(*) as count fromuser_table group by user_name having count>1;

select * from people

where peopleId in (select peopleId from peoplegroup by peopleId having count(peopleId) > 1)

统计重复数据

统计表中 first_name last_name的重复记录数:


1

2

3

4

5

mysql> SELECT COUNT(*) as repetitions,last_name,   first_name

->FROM person_tbl

->GROUP BY last_name, first_name

->HAVING repetitions > 1;


继续浏览有关 mysql 的文章
发表评论