Rozbijmy różnicę między poleceniami obcięcia i usuń w SQL.
SQL Truncate Command
Polecenie obcięte w SQL jest znane jako język definicji danych. Polecenia obcięcia usuwają dane z tabeli, zachowując strukturę tabeli. W przeciwieństwie do polecenia Usuń, nie można filtrować dla określonych rekordów za pomocą klauzuli Where.
Podobnie nie możemy wykonać wycofania po uruchomieniu obciętych poleceń, ponieważ dla tego polecenia nie są zachowane dzienniki.
Uwaga: niektóre silniki bazy danych obsługują wycofanie poleceń obrotowych, ale to nie jest uniwersalne.
Jeśli tabela jest częścią indeksowanego widoku lub odwoływania się przez klucz obce, polecenie obrotowe nie będzie działać w tej tabeli.
Składnia poleceń jest jak pokazano:
Tabela obcięcia table_name;Polecenie obcięte jest szybsze niż usuwanie, ponieważ nie wykonuje skanowania dla rekordów przed usunięciem. Zapewnia również zablokowanie całej tabeli przed usunięciem danych, zmniejszając w ten sposób przestrzeń transakcyjną.
W zależności od silnika bazy danych, potrzebujesz wyraźnych uprawnień do wykonania obcięcia na tabeli. Na przykład na SQL Server potrzebujesz zgody na tabelę. MySQL wymaga upuszczenia upuszczenia, PostgreSQL wymaga uprawnień do obcięcia, a Oracle wymaga upuszczania dowolnej uprawnienia do tabeli.
Polecenie SQL Usuń
Polecenie Delete to polecenie manipulacji danymi. Umożliwia usuwanie rekordów z tabeli bazy danych i zwraca liczbę usuniętych rekordów. Polecenia Usuń usuwają wiersze z tabeli, a nie z całej tabeli z bazy danych.
W przeciwieństwie do polecenia obcinanego, polecenie Usuń umożliwia filtrowanie rekordów docelowych za pomocą klauzuli Where.
Składnia polecenia pokazano poniżej:
Usuń z Table_name;Aby filtrować określone rekordy, możesz użyć składni, jak pokazano poniżej:
Usuń z nazwy Table_name, gdzie warunek;Uwaga: Jeśli nie określisz docelowych kolumn, polecenie usunie wszystkie rekordy z podanej tabeli.
W przeciwieństwie do polecenia obcięcia, które blokuje całą tabelę, polecenie Usuń blokuje poszczególne wiersze prowadzące do wyższej przestrzeni transakcji, szczególnie na dużym stole.
Aby uruchomić polecenie Usuń na tabeli, potrzebujesz uprawnienia Usuń.
Tabela podsumowań
Poniższa tabela podsumowuje różnice między poleceniami SQL i obrotowymi.
SQL Truncate | SQL Delete | |
---|---|---|
Typ | Język definicji danych | Język manipulacji danymi |
Rodzaj blokady | Tabela | Wiersz |
Wycofanie | Niektóre silniki bazy danych | Tak |
Dzienniki transakcyjne | Cały stół | Na rząd |
Zastosowanie przestrzeni transakcji | Mniej | Wyższy |
Wsparcie wyzwalające | NIE | Tak |
Prędkość | Bardzo szybki | Powolny |
Typ usunięcia | Wszystkie rzędy | Wszystkie lub określone wiersze (jak określono) |
Działa z indeksowanym widokiem? | NIE | Tak |
Reset kolumny tożsamości | Niektóre silniki bazy danych | NIE |
Zwrot usuwa rekordy? | NIE | Tak |
W większości przypadków wybór najlepszego rodzaju operacji będzie zależeć od twoich konkretnych potrzeb. Rozważ jednak następujące punkty:
Wniosek
W tym artykule omówiono dwa podstawowe polecenia usuwania danych w bazie danych SQL. Korzystając z tego przewodnika, możesz wyraźnie określić, co wykonuje polecenie obrotowe lub polecenie Delete w relacyjnej bazie danych. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i samouczków.