欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql對表重復數據刪

吉茹定2年前10瀏覽0評論

MySQL對表重復數據刪

第一步:查找重復數據

要刪除表中的重復數據,首先需要找到它們。MySQL提供了DUPILCATE關鍵字和GROUP BY語句來幫助我們查找重復數據。例如,以下SQL語句可以查詢students表中的重復記錄:

SELECT name, COUNT(*) FROM students GROUP BY name HAVING COUNT(*) >1;

第二步:刪除重復數據

一旦找到了重復記錄,就可以使用DELETE語句刪除它們。在這個例子中,我們要確保只有重復的記錄被刪除,因此我們要使用子查詢。以下是刪除students表中重復姓名的記錄的SQL語句:

DELETE FROM students WHERE name IN (SELECT name FROM (SELECT name, COUNT(*) FROM students GROUP BY name HAVING COUNT(*) >1) s);

第三步:設置唯一性約束

如果我們不想讓表中出現重復的數據,可以在表結構中添加唯一性約束。以下是將唯一性約束添加到students表的name字段的SQL語句:

ALTER TABLE students ADD CONSTRAINT uc_name UNIQUE (name);

第四步:插入數據時自動刪除重復數據

在設置唯一性約束之后,如果我們嘗試向表中插入重復數據,MySQL將自動刪除它們。以下是向students表插入數據的SQL語句,它包括一些重復的姓名:

INSERT INTO students (name, age, gender) VALUES ('Tom', 18, 'M'), ('Jerry', 17, 'F'), ('Tom', 18, 'M'), ('Lucy', 19, 'F');

上面的SQL語句將插入三條記錄,但由于重復姓名的數據已經存在于表中,MySQL只會插入兩條記錄。如果我們再次查詢students表,將看到從表中刪除了所有的重復數據:

SELECT * FROM students;