- 设置双主键模式
CREATE TABLE student
(
first_name CHAR(20) NOT NULL,
last_name CHAR(20) NOT NULL,
sex CHAR(10),
PRIMARY KEY (last_name, first_name)
);
- 添加unique索引
CREATE TABLE student
(
first_name CHAR(20) NOT NULL,
last_name CHAR(20) NOT NULL,
sex CHAR(10)
UNIQUE (last_name, first_name)
);
-
在插入时指定能否插入重复数据
在这里我们使用的是Insert ignore into 与Insert into指令。
(1)Insert ignore into会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
(2)Insert into则直接相反,会直接插入数据,不管数据库里面是否含有重复数据。
insert ignore into student (last_name, first_name) values ( '张三', '李四');
//结果
Query OK, 1 rows affected (0.00 sec)
insert ignore into student (last_name, first_name) values ( '张三', '李四');
//结果
Query OK, 0 rows affected (0.00 sec)
现在我们看出来了吧,也就是说在执行第一条插入操作的时候,
看到数据库没有,则直接插入一条新纪录,因此一行记录
受到影响,但是在第二次插入的时候,
数据库已经有一条一样的了,因此便不会插入了,0行受到影响
-
过滤重复数据
1.distinct
2.gruop by
3.在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下
ALTER IGNORE TABLE student
ADD PRIMARY KEY (last_name, first_name);