logo

Різниця між DELETE і TRUNCATE

ВИДАЛИТИ — це команда DML (мова обробки даних), яка використовується, коли ми вказуємо рядок (кортеж), який ми хочемо вилучити або видалити з таблиці чи зв’язку. Команда DELETE може містити пропозицію WHERE. Якщо речення WHERE використовується з командою DELETE, воно видаляє або видаляє лише ті рядки (кортежі), які задовольняють умову; інакше за замовчуванням він видаляє всі кортежі (рядки) з таблиці. Пам’ятайте, що DELETE реєструє видалення рядків.

Синтаксис:

DELETE FROM TableName



умова ДЕ;

java math.min

ВСИЧАТИ це команда DDL (мова визначення даних), яка використовується для видалення всіх рядків або кортежів із таблиці. На відміну від команди DELETE, команда TRUNCATE не містить a речення WHERE . У команді TRUNCATE журнал транзакцій для кожної видаленої сторінки даних не записується. На відміну від команди DELETE, команда TRUNCATE є швидкою. Ми не можемо відкотити дані після використання команди TRUNCATE.

Синтаксис:

TRUNCATE TABLE TableName;

Давайте зрозуміємо це, взявши простий приклад, у якому ми створимо одну фіктивну таблицю, а потім виконаємо операцію видалення.

Запит:

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 ;>

Вихід

Таблиця співробітників

Таблиця співробітників

Приклад команди видалення:

Тепер ви повинні створити запит, щоб видалити останній запис зі значенням 106 для Emp_id.

Запит:

Delete from Employee where Emp_id = 106;>

Вихід

вихід

вихід

Приклад команди TRUNCATE

Щоб повністю видалити всі записи зі столу гравців у цьому випадку, скористайтеся командою truncate.

Запит:

TRUNCATE TABLE Employee;>

Відмінності між DELETE і TRUNCATE

Видалити Обрізати
Команда DELETE використовується для видалення вказаних рядків (одного або кількох). Хоча ця команда використовується для видалення всіх рядків із таблиці.
Це DML (мова обробки даних) команда. Хоча це а DDL (мова визначення даних) команда.
У команді DELETE може бути пропозиція WHERE для фільтрації записів. Хоча в команді TRUNCATE може не бути пропозиції WHERE.
У команді DELETE кортеж блокується перед його видаленням. Під час виконання цієї команди сторінка даних блокується перед видаленням даних таблиці.
Інструкція DELETE видаляє рядки по одному та записує запис у журнал транзакцій для кожного видаленого рядка. TRUNCATE TABLE видаляє дані, звільняючи сторінки даних, які використовуються для зберігання даних таблиці, і записує лише звільнення сторінок у журнал транзакцій.
Команда DELETE повільніша за команду TRUNCATE. Хоча команда TRUNCATE швидша за команду DELETE.
Щоб використовувати Delete, вам потрібен дозвіл DELETE для таблиці. Щоб використовувати Truncate на таблиці, нам потрібно принаймні ЗМІНИТИ дозвіл на стіл.
Ідентифікація меншого стовпця зберігає ідентичність після використання оператора DELETE у таблиці. Identity стовпець скидається до початкового значення, якщо таблиця містить стовпець ідентифікатора.
Видалення можна використовувати з індексованими видами. Truncate не можна використовувати з індексованими представленнями.
Ця команда також може активувати тригер. Ця команда не активує тригер.
Оператор DELETE займає більше простору для транзакцій, ніж Truncate. Інструкція Truncate займає менше простору для транзакцій, ніж DELETE.

Операції видалення можна ВІДКОТИТИ.

TRUNCATE не можна відкотити, оскільки він викликає неявну фіксацію.

Видалення не ВИДАЛЯЄ всю таблицю. Він отримує блокування таблиці та починає видаляти рядки.

TRUNCATE спочатку видаляє таблицю, а потім створює її заново, що швидше, ніж видалення окремих рядків.

Висновок

У цій статті SQL розробники можуть належним чином видалити рядки, правильно використовуючи команди DELETE і TRUNCATE. Команду TRUNCATE слід використовувати з обережністю, оскільки вона видаляє всі записи таблиці. Початківцям також стане в нагоді пояснення в цьому підручнику відмінностей між командами Delete і Truncate.

ВИДАЛИТИ:

  • Ви хочете видалити з таблиці всіх співробітників, які нічого не купували протягом останніх шести місяців.
  • Ви хочете видалити працівника зі столу.

УКОРИТИ:

  • Ви хочете відновити вміст таблиці до початкового стану.
  • Вам не потрібно мати можливість відновити дані; ви просто хочете взагалі видалити його зі столу.