Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Datu bāzes projektēšanas paraugprakse iesaka izmantot UNIQUE ierobežojumu, lai novērstu dublikātus datu bāzē. Tomēr, strādājot ar slikti izstrādātu datu bāzi vai netīriem datiem, iespējams, jums pašam būs jāatrod dublikāti un tie jāizdzēš manuāli.

Lasiet tālāk, lai uzzinātu, kā SQL datu bāzē atrast dublikātus un tos izdzēst.

Izveidojiet paraugu datu bāzi

Demonstrācijas nolūkos izveidojiet tabulu ar nosaukumu Lietotāji ar nosaukumu un rezultātu kolonnu, izpildot šo SQL vaicājumu.

NOLIETOTTABULAJAPASTĀVLietotāji;

IZVEIDOTTABULALietotāji (
pk_id starpt PRIMĀRĀ ATSLĒGA,
vārds VARCHAR (16),
rezultāts INT,
);

Ievietojiet dažus vērtību paraugus, izpildot šo vaicājumu:

IEVIETOTINTO
Lietotāji (pk_id, vārds, rezultāts)
VĒRTĪBAS
(1, "Džeina", 20),
(2, 'Džons', 13),
(3, "Alekss", 32),
(4, 'Džons', 46),
(5, "Džeina", 20),
(6, 'Mērija', 34),
(7, "Džeina", 20),
(8, 'Džons', 13)
instagram viewer

Ņemiet vērā, ka dažās no šīm rindām ir dublētas nosaukuma kolonnas vērtības.

Jūtieties brīvi pārbaudīt šos SQL komandas un vaicājumi ja jums ir nepieciešams padziļināts skaidrojums par to, kā manipulēt ar datu bāzēm, izmantojot SQL.

GROUP BY izmantošana, lai atrastu dublētās vērtības

Jūs varat izmantojiet priekšrakstu GROUP BY, lai sakārtotu vērtības kas atbilst noteiktiem nosacījumiem tajā pašā grupā.

Pieņemsim, ka nosaukumiem parauga tabulā ir jābūt unikāliem. Varat izmantot GROUP BY, lai grupētu rindas ar vienādu nosaukumu.

ATLASĪTnosaukums, SKAITĪT(nosaukums)
NO lietotājiem
GRUPA PĒC vārda
IR SKAITS(vārds) > 1

COUNT ļauj atlasīt rindas, kurās ir vairāk nekā viens lietotājs ar vienādu vārdu.

Palaižot šo vaicājumu, datu bāze kā dublikātus atgriezīs rindas, kurās būs Džons un Džeina.

Dublikātu dzēšana no datu bāzes

Pēc dublikātu atrašanas, iespējams, vēlēsities tos dzēst, izmantojot priekšrakstu DELETE.

Šajā piemērā palaidiet šādu vaicājumu:

AR cte AS (
ATLASĪT *
ROW_NUMBER() BEIGAS (
NODAĻA
vārds, rezultāts
SAKĀRTOT PĒC
vārds, rezultāts
) R
NO
Lietotāji
)

DZĒSTNO cte
KUR R > 1;

Šis vaicājums izmanto CTE izteiksmi, lai atrastu dublikātus, un pēc tam dzēš tos visus, izņemot vienu.

Kāpēc jums vajadzētu dzēst dublētos datus

Dublētu datu dzēšana nav obligāta. Tomēr tas ļauj atbrīvot vietu, ko izmanto dublētās rindas.

Mazāk rindu arī nozīmē, ka vaicājumus var izpildīt daudz ātrāk, tādējādi nodrošinot augstāku veiktspēju. Izmantojiet šīs apmācības vaicājumus, lai palīdzētu atrast un noņemt dublikātus no SQL datu bāzes.