DZĒST ir komanda DML (datu manipulācijas valoda), un to izmanto, kad norādām rindu (korpusu), kuru vēlamies noņemt vai dzēst no tabulas vai relācijas. Komandā DELETE var būt WHERE klauzula. Ja WHERE klauzula tiek izmantota ar komandu DELETE, tad tā noņem vai dzēš tikai tās rindas (koreži), kas atbilst nosacījumam; pretējā gadījumā pēc noklusējuma tas noņem no tabulas visus korteņus (rindas). Atcerieties, ka DELETE reģistrē rindu dzēšanu.
Sintakse:
DZĒST NO tabulas nosaukums
KUR nosacījums;
noņemšana no masīvu saraksta
TRUCĒT ir DDL (datu definīcijas valoda) komanda un tiek izmantota, lai dzēstu visas tabulas rindas vai korteņus. Atšķirībā no komandas DELETE, komanda TRUNCATE nesatur a KUR klauzula . Komandā TRUNCATE katras izdzēstās datu lapas darījumu žurnāls netiek ierakstīts. Atšķirībā no komandas DELETE, komanda TRUNCATE ir ātra. Mēs nevaram atsaukt datus pēc komandas TRUNCATE izmantošanas.
Sintakse:
TRUNCATE TABLE Tabulas nosaukums;
Izpratīsim to, ņemot vienu vienkāršu piemēru, kurā mēs izveidosim vienu fiktīvu tabulu un pēc tam veiksim dzēšanas darbību.
Vaicājums:
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 ;>
Izvade

Darbinieku tabula
Dzēšanas komandas piemērs:
Tagad jums ir jāizveido vaicājums, lai noņemtu pēdējo Emp_id ierakstu ar vērtību 106.
Vaicājums:
Delete from Employee where Emp_id = 106;>
Izvade

izvade
Piemērs komandai TRUNCATE
Lai šajā gadījumā pilnībā noņemtu visus ierakstus no galda spēlētājiem, izmantojiet komandu saīsināt.
Vaicājums:
TRUNCATE TABLE Employee;>
Atšķirības starp DELETE un TRUNCATE
| Dzēst | Apcirpt |
|---|---|
| Komanda DELETE tiek izmantota, lai dzēstu norādītās rindas (vienu vai vairākas). | Kamēr šī komanda tiek izmantota, lai dzēstu visas tabulas rindas. |
| Tas ir DML (datu manipulācijas valoda) komandu. | Kamēr tas ir a DDL (datu definīcijas valoda) komandu. |
| Lai filtrētu ierakstus, komandā DELETE var būt klauzula WHERE. | Lai gan komandā TRUNCATE var nebūt WHERE klauzulas. |
| Komandā DELETE kortežs tiek bloķēts pirms tā noņemšanas. | Šīs komandas laikā datu lapa tiek bloķēta pirms tabulas datu noņemšanas. |
| DELETE priekšraksts noņem rindas pa vienai un ieraksta ierakstu darījumu žurnālā par katru dzēsto rindu. | TRUNCATE TABLE noņem datus, atdalot datu lapas, kas tiek izmantotas tabulas datu glabāšanai, un ieraksta tikai lapu atdalīšanas darījumu žurnālā. |
| Komanda DELETE ir lēnāka nekā komanda TRUNCATE. | Kamēr komanda TRUNCATE ir ātrāka nekā komanda DELETE. |
| Lai izmantotu funkciju Dzēst, tabulā ir nepieciešama DELETE atļauja. | Lai uz galda izmantotu Truncate, mums ir nepieciešams vismaz ALTER atļauja uz galda. |
| Mazāk kolonnas identitāte saglabā identitāti pēc DELETE paziņojuma izmantošanas tabulā. | Identitāte kolonnai tiek atiestatīta sākotnējā vērtība, ja tabulā ir identitātes kolonna. |
| Dzēšanu var izmantot ar indeksētiem skatiem. | Saīsināt nevar izmantot indeksētiem skatiem. |
| Šī komanda var arī aktivizēt aktivizētāju. | Šī komanda neaktivizē aktivizētāju. |
| DELETE priekšraksts aizņem vairāk darījumu vietu nekā saīsināt. | Apcirpt priekšraksts aizņem mazāk darījumu vietas nekā DELETE. |
| Dzēšanas darbības var ATTĪST atpakaļ. | TRUNCATE nevar atsaukt, jo tas izraisa netiešu apņemšanos. |
| Dzēšot visu tabulu, NEMAZ. Tas iegūst bloķēšanu tabulā un sāk dzēst rindas. | TRUNCATE vispirms atmet tabulu un pēc tam izveido to no jauna, kas ir ātrāk nekā atsevišķu rindu dzēšana. |
Secinājums
Šajā rakstā SQL izstrādātāji var atbilstoši noņemt rindas, pareizi izmantojot komandas DELETE un TRUNCATE. Komanda TRUNCATE ir jāizmanto piesardzīgi, jo tā dzēš visus tabulas ierakstus. Iesācēji noderēs arī no šīs apmācības skaidrojuma par atšķirībām starp komandām Dzēst un Saīsināt.
DZĒST:
- Jūs vēlaties noņemt no galda visus darbiniekus, kuri pēdējo sešu mēnešu laikā neko nav iegādājušies.
- Jūs vēlaties noņemt darbinieku no tabulas.
TRUNCATE:
- Jūs vēlaties atjaunot tabulas saturu tā sākotnējā stāvoklī.
- Jums nav jāspēj atjaunot datus; jūs vienkārši vēlaties to noņemt no tabulas.