Duomenų kūrimas ir manipuliavimas sudaro duomenų bazių pagrindą ir mes atitinkamai vadiname DDL ir DML. DDL yra duomenų apibrėžimo kalbos santrumpa. Tai galėtų sukurti arba modifikuoti duomenų struktūras duomenų bazėse, ir jos negalėjo būti naudojamos lentelėse esantiems duomenims pakeisti. Pvz., Turime komandas, kurios tiesiog sukuria lentelę su nurodytais lentelės atributais, tačiau ji niekada neprideda jokių lentelės eilučių. Bet DML, duomenų tvarkymo kalba, gali pridėti, ištrinti ar modifikuoti duomenis lentelėse. Paprastai DDL komandos susijusios su lentelių struktūromis, o DML komandos - su tikraisiais duomenimis. Būk taip, kodėl mes tiesiog nukrypstame nuo temos „Skirtumas tarp sutrumpinimo ir ištrynimo“? Yra priežasčių, kodėl mes kalbėjome apie DML ir DDL. Jūs suprastumėte tai vykstančioje diskusijoje.
Truncate komandos tikslas yra ištrinti visą lentelę. Taigi, kai naudojate komandą Apipjaustyti, prarasite visus lentelės duomenis ir turėtumėte būti atsargūs naudodamiesi ja. Praneškite mums, kaip ja naudotis.
Trumpinimo sintaksė:
NUSTATYMO LENTELĖ stalo pavadinimas;
Čia turėtumėte nurodyti lentelės, kuri turėtų būti išbraukta, pavadinimą. Tai garantuoja, kad atminties vietoje sėdės koks nors stalas. Čia yra „Truncate“ naudojimo pavyzdys.
Žemiau yra lentelė „darbuotojas“ ir tiesiog pažiūrėkite į joje esančias duomenų eilutes.
emp-id | emp-vardas | paskyrimas |
1011 | Domkratas | Tarnautojas |
1012 | Rožinis | Administratorius |
1014 | Nancy | Finansai |
Dabar leiskite mums išduoti žemiau esančią komandą ant darbuotojų stalo.
NUSTATYMO LENTELĖ darbuotojas;
Čia yra aukščiau pateiktos sintaksės rezultatas ir joje nėra duomenų.
emp-id | emp-vardas | paskyrimas |
Komandos „Trinti“ tikslas yra pašalinti nurodytas eilutes iš lentelės. Čia naudojama išlyga „Kur“, naudojama eilutėms, kurias reikia ištrinti, nurodyti. Kai nenurodysime eilučių, komanda ištrins visas lentelės eilutes. Pažvelkite tik į jos sintaksę.
IŠtrinti iš darbuotojas;
Aukščiau pateikta sintaksė panaikina visas eilutes iš lentelės „darbuotojas“. Taigi gautoje lentelėje nėra duomenų.
IŠtrinti iš darbuotojas KUR emp-id = 1011;
Šis teiginys tik ištrina vieną eilutę, kurios emp-id yra 1011. Taigi gauta lentelė būtų tokia, kaip nurodyta žemiau.
emp-id | emp-vardas | paskyrimas |
1012 | Rožinis | Administratorius |
1014 | Nancy | Finansai |
Apipjaustyti -> pašalinti visus duomenis iš lentelės -> lentelės vieta yra laisva.
Ištrinti -> Nukopijuokite originalius lentelės duomenis į „Roll Back“ vietą -> ištrinkite nurodytus duomenis / visą lentelę -> Lentelės vieta yra laisva, bet „Roll Back“ vieta užpildyta.
Truncate yra DDL komanda, trigeris čia neleidžiamas. Bet Trinti yra DML komanda, čia leidžiami trigeriai.
Taigi, tai yra skirtumai ir pažvelkime į lentelę.
S.Ne | Skirtumai | Apipjaustyti | Ištrinti |
1. | DDL arba DML? | Tai yra DDL ir veikia duomenų struktūros lygiu. Kiti DDL pavyzdžiai yra CREATE ir ALTER. | Tai yra DML komanda ir ji veikia su lentelės duomenimis. DML reiškia duomenų tvarkymo kalbą. Tokios komandos kaip SELECT, UPDATE ir INSERT yra puikūs DML pavyzdžiai. DML reiškia duomenų tvarkymo kalbą. |
2. | Kaip tai veikia? | Kai tik išduosime komandą Apipjaustyti, ji tiesiog ieškos nurodytos lentelės. Tada jis visiškai pašalina visus duomenis iš atminties. | Čia, prieš atliekant faktinius duomenų tvarkymo veiksmus, originalūs lentelės duomenys nukopijuojami į vietą, vadinamą „Grįžimo atgal“ vieta. Tada pakeitimai atliekami faktinėje lentelės duomenų erdvėje. |
3. | „RollBack“ | „Truncate“ komanda niekada nenaudoja vietos atnaujinimo vietai ir mes negalėjome grįžti prie pirminių duomenų. Atšaukimo vieta yra išskirtinė ir užimama, kai išleidžiamos DML komandos. | Komanda „Ištrinti“ naudoja atšaukiamą vietą ir mes galime tiesiog naudoti „Įsipareigoti“ arba „Atšaukti“ atitinkamai priimti arba atšaukti pakeitimus..
|
4. | Trigeriai | Apipjaustymas yra DDL komanda, paleidikliai neleidžiami. | Trinti yra DML komanda, čia leidžiami trigeriai.
|
5. | Kuris yra greitesnis? | Tai gali pašalinti visus duomenis ir nereikia tikrinti, ar yra atitikimo sąlygų. Be to, pradiniai duomenys nekopijuojami į atnaujinimo vietą ir tai sutaupo daug laiko. Šie du veiksniai verčia „Truncate“ veikti greičiau nei ištrinti.
| Tam naudojama atšaukimo vieta ir visada turi būti išsaugoti pirminiai duomenys. Tai yra papildoma našta ir, savo ruožtu, atima daug laiko nei „Truncate“. |
6. | Ar galėtume naudoti WHERE sąlygą?? | Kadangi „Truncate“ niekada neieško atitikimo sąlygų ir tiesiog pašalina visas eilutes, negalėtume čia naudoti „kur“ sąlygos. | Bet sąlygą visada galėjome nurodyti naudodamiesi klaida „iš kur“ komandoje „Ištrinti“. |
7. | Kuris užima daugiau vietos? | Apatinis trikotažas nesinaudos atšaukimo vieta ir išsaugo tą atmintį. | Jam reikia atsarginės kopijos atšauktos erdvės pavidalu, taigi jai reikia daugiau atminties nei sutrumpintai. |
Žinant bet kurių dviejų esybių skirtumus, praplečiamos žinios apie abu! Jūs nusileidote teisingu keliu, t. Y. Tinklalapiu, kad suprastumėte skirtumus, ypač tarp sutrumpinimo ir ištrynimo komandų. Tikiuosi, kad jums dabar aiškūs skirtumai ir praneškite mums, jei mes padėjome jums tai suprasti. Jūs taip pat galėtumėte mums padėti nurodyti, kas liko!