ȘTERGE este o comandă DML (Data Manipulation Language) și este folosită atunci când specificăm rândul (tuplu) pe care dorim să îl ștergem sau să îl ștergem din tabel sau relație. Comanda DELETE poate conține o clauză WHERE. Dacă clauza WHERE este folosită cu comanda DELETE, atunci elimină sau șterge doar acele rânduri (tupluri) care îndeplinesc condiția; în caz contrar, în mod implicit, elimină toate tuplurile (rândurile) din tabel. Amintiți-vă că DELETE înregistrează ștergerile rândurilor.
Sintaxă:
DELETE FROM TableName
starea UNDE;
cum fac upgrade la java
TRUNCHIA este o comandă DDL (Data Definition Language) și este folosită pentru a șterge toate rândurile sau tuplurile dintr-un tabel. Spre deosebire de comanda DELETE, comanda TRUNCATE nu conține a clauza WHERE . În comanda TRUNCATE, jurnalul de tranzacții pentru fiecare pagină de date ștearsă nu este înregistrat. Spre deosebire de comanda DELETE, comanda TRUNCATE este rapidă. Nu putem anula datele după ce folosim comanda TRUNCATE.
Sintaxă:
TRUNCATE TABLE TableName;
Să înțelegem asta luând un exemplu simplu în care vom crea un tabel inactiv și apoi vom face operația de ștergere.
Interogare:
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 ;>
Ieșire

Tabelul angajaților
Exemplu pentru comanda de ștergere:
Acum trebuie să creați o interogare pentru a elimina ultima intrare cu valoarea 106 pentru Emp_id.
Interogare:
Delete from Employee where Emp_id = 106;>
Ieșire

ieșire
Exemplu pentru comanda TRUNCATE
Pentru a elimina complet toate înregistrările de la jucătorii de la masă, în acest caz, utilizați comanda truncate.
Interogare:
TRUNCATE TABLE Employee;>
Diferențele dintre DELETE și TRUNCATE
| Șterge | Trunchia |
|---|---|
| Comanda DELETE este folosită pentru a șterge rândurile specificate (unul sau mai multe). | În timp ce această comandă este folosită pentru a șterge toate rândurile dintr-un tabel. |
| Este un DML (limbaj de manipulare a datelor) comanda. | În timp ce este o DDL (Limbaj de definire a datelor) comanda. |
| Poate exista o clauză WHERE în comanda DELETE pentru a filtra înregistrările. | Deși poate să nu existe clauza WHERE în comanda TRUNCATE. |
| În comanda DELETE, un tuplu este blocat înainte de a-l elimina. | În timpul acestei comenzi, pagina de date este blocată înainte de a elimina datele din tabel. |
| Instrucțiunea DELETE elimină rândurile pe rând și înregistrează o intrare în jurnalul de tranzacții pentru fiecare rând șters. | TRUNCATE TABLE îndepărtează datele prin dealocarea paginilor de date utilizate pentru a stoca datele din tabel și înregistrează numai dealocarea paginilor în jurnalul de tranzacții. |
| Comanda DELETE este mai lentă decât comanda TRUNCATE. | În timp ce comanda TRUNCATE este mai rapidă decât comanda DELETE. |
| Pentru a utiliza Delete, aveți nevoie de permisiunea DELETE de pe tabel. | Pentru a folosi Truncate pe o masă avem nevoie de cel puțin MODIFICA permisiunea pe masă. |
| Identitatea celei mai puține coloane păstrează identitatea după utilizarea instrucțiunii DELETE pe tabel. | Identitate coloana este resetată la valoarea sa de început dacă tabelul conține o coloană de identitate. |
| Ștergerea poate fi utilizată cu vizualizări indexate. | Trunchierea nu poate fi utilizată cu vizualizările indexate. |
| Această comandă poate activa și declanșarea. | Această comandă nu declanșează activ. |
| Declarația DELETE ocupă mai multe spații de tranzacție decât Truncate. | Instrucțiunea Truncate ocupă mai puține spații de tranzacție decât DELETE. |
| Operațiunile de ștergere pot fi ROLATE înapoi. | TRUNCATE nu poate fi derulat înapoi, deoarece provoacă o comitere implicită. |
| Ștergerea nu elimină întregul tabel. Acesta capătă o blocare pe masă și începe să ștergă rândurile. | TRUNCATE aruncă mai întâi tabelul și apoi îl recreează, ceea ce este mai rapid decât ștergerea rândurilor individuale. |
Concluzie
În acest articol, SQL dezvoltatorii pot elimina rândurile în mod corespunzător utilizând corect comenzile DELETE și TRUNCATE. Comanda TRUNCATE trebuie utilizată cu prudență deoarece șterge toate înregistrările tabelului. Începătorii vor beneficia, de asemenea, de explicația acestui tutorial cu privire la diferențele dintre comenzile Ștergere și Truncare.
ȘTERGE:
- Doriți să eliminați dintr-un tabel toți angajații care nu au cumpărat nimic în ultimele șase luni.
- Doriți să eliminați un angajat dintr-un tabel.
TRUNCHIA:
- Doriți să restabiliți conținutul tabelului la starea inițială.
- Nu trebuie să puteți restaura datele; vrei doar să-l scoți cu totul de pe masă.