logo

Różnica między DELETE i TRUNCATE

USUWAĆ to polecenie DML (Data Manipulation Language) i jest używane, gdy określamy wiersz (krotkę), który chcemy usunąć lub usunąć z tabeli lub relacji. Polecenie DELETE może zawierać klauzulę WHERE. Jeżeli klauzula WHERE zostanie użyta z poleceniem DELETE, wówczas usuwa lub kasuje tylko te wiersze (krotki), które spełniają warunek; w przeciwnym razie domyślnie usuwa wszystkie krotki (wiersze) z tabeli. Pamiętaj, że DELETE rejestruje usunięcia wierszy.

Składnia:

USUŃ Z nazwy tabeli



GDZIE warunek;

kod c abs

ŚCIĘTY to polecenie DDL (Data Definition Language) służące do usuwania wszystkich wierszy lub krotek z tabeli. W przeciwieństwie do polecenia DELETE, polecenie TRUNCATE nie zawiera a klauzula WHERE . W poleceniu TRUNCATE dziennik transakcji dla każdej usuniętej strony danych nie jest rejestrowany. W przeciwieństwie do polecenia DELETE, polecenie TRUNCATE jest szybkie. Nie możemy przywrócić danych po użyciu polecenia TRUNCATE.

Składnia:

TRUNCATE TABLE Nazwa tabeli;

Rozumiemy to na jednym prostym przykładzie, w którym utworzymy jedną fikcyjną tabelę, a następnie wykonamy operację usuwania.

Zapytanie:

CREATE table Employee ( Emp_id int,  name VARCHAR(20),  country VARCHAR(20),  Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000),  (103, 'Anish', 'England', 70000),  (104, 'Shubham', 'France', 100000),  (102, 'Danish', 'Sweden', 40000),  (105, 'Vivek', 'Wales', 50000),  (106, 'Rohan', 'Scotland', 30000);  Select * from Employee ;>

Wyjście

Tabela pracowników

Tabela pracowników

Przykład polecenia Usuń:

Musisz teraz utworzyć zapytanie, aby usunąć ostatni wpis o wartości 106 dla Emp_id.

Zapytanie:

Delete from Employee where Emp_id = 106;>

Wyjście

wyjście

wyjście

Przykład polecenia TRUNCATE

Aby w tym przypadku całkowicie usunąć wszystkie rekordy z graczy stołowych należy użyć komendy truncate.

Zapytanie:

TRUNCATE TABLE Employee;>

Różnice między DELETE i TRUNCATE

Usuwać Ścięty
Polecenie DELETE służy do usuwania określonych wierszy (jednego lub więcej). Chociaż to polecenie służy do usuwania wszystkich wierszy z tabeli.
To jest DML (język manipulacji danymi) Komenda. Chociaż jest to DDL (język definicji danych) Komenda.
W poleceniu DELETE może znajdować się klauzula WHERE służąca do filtrowania rekordów. Chociaż w poleceniu TRUNCATE może nie być klauzuli WHERE.
W poleceniu DELETE krotka jest blokowana przed jej usunięciem. Podczas wykonywania tego polecenia strona danych jest blokowana przed usunięciem danych z tabeli.
Instrukcja DELETE usuwa wiersze pojedynczo i rejestruje wpis w dzienniku transakcji dla każdego usuniętego wiersza. TRUNCATE TABLE usuwa dane poprzez cofnięcie alokacji stron danych używanych do przechowywania danych w tabeli i rejestruje tylko cofnięcia alokacji stron w dzienniku transakcji.
Polecenie DELETE jest wolniejsze niż polecenie TRUNCATE. Chociaż polecenie TRUNCATE jest szybsze niż polecenie DELETE.
Aby użyć opcji Usuń, potrzebujesz uprawnienia DELETE w tabeli. Aby użyć Truncate na stole, potrzebujemy przynajmniej ZMIENIAĆ pozwolenie na stole.
Tożsamość mniejszej kolumny zachowuje tożsamość po użyciu instrukcji DELETE w tabeli. Tożsamość kolumna jest resetowana do wartości początkowej, jeśli tabela zawiera kolumnę tożsamości.
Usuwanie może być stosowane w widokach indeksowanych. Nie można używać opcji Truncate w widokach indeksowanych.
To polecenie może również aktywować wyzwalacz. To polecenie nie aktywuje wyzwalacza.
Instrukcja DELETE zajmuje więcej przestrzeni transakcyjnej niż Truncate. Instrukcja Truncate zajmuje mniej przestrzeni transakcyjnej niż DELETE.

Operacje usuwania można WYCOFAĆ.

Nie można wycofać TRUNCATE, ponieważ powoduje to niejawne zatwierdzenie.

Usuń nie powoduje USUWANIA całej tabeli. Uzyskuje blokadę tabeli i rozpoczyna usuwanie wierszy.

TRUNCATE najpierw upuszcza tabelę, a następnie tworzy ją ponownie, co jest szybsze niż usuwanie pojedynczych wierszy.

Wniosek

W tym artykule, SQL programiści mogą odpowiednio usunąć wiersze, używając poprawnie poleceń DELETE i TRUNCATE. Polecenie TRUNCATE należy stosować ostrożnie, ponieważ usuwa ono wszystkie rekordy tabeli. Początkujący również skorzystają z wyjaśnienia tego samouczka na temat rozróżnień między poleceniami Usuń i Obetnij.

USUWAĆ:

  • Chcesz usunąć ze stołu wszystkich Pracowników, którzy nic nie kupili w ciągu ostatnich sześciu miesięcy.
  • Chcesz usunąć pracownika ze stołu.

ŚCIĘTY:

  • Chcesz przywrócić zawartość tabeli do pierwotnego stanu.
  • Nie musisz mieć możliwości przywrócenia danych; po prostu chcesz go całkowicie usunąć ze stołu.