Truncate At Tanggalin

Anonim

Ang paglikha at pagmamanipula ng data ay bumubuo sa batayan ng mga database at tinawag namin itong DDL at DML ayon sa pagkakabanggit. Ang isang DDL ay isang pagdadaglat para sa Wika sa Pagsasalita ng Data. Maaari itong lumikha o baguhin ang mga istraktura ng data sa mga database at hindi nila maaaring gamitin upang baguhin ang data na naroroon sa mga talahanayan. Halimbawa, mayroon kaming mga utos na lumikha lamang ng talahanayan na may tinukoy na mga katangian ng talahanayan ngunit hindi ito nagdadagdag ng anumang mga hilera sa talahanayan. Ngunit ang isang DML, ang Data Manipulation Language, ay may kakayahang pagdaragdag, pagtanggal o pagbabago ng data sa mga talahanayan. Bilang pangkalahatang tuntunin, ang mga utos ng DDL ay nakikipag-usap sa mga istraktura ng talahanayan kung saan ang mga utos ng DML ay nakikipag-usap sa aktwal na data. Hayaan ito, kung bakit lamang namin lumihis mula sa paksang "Pagkakaiba sa pagitan ng Truncate at Tanggalin"? May mga dahilan na nagsalita tayo tungkol sa DML at DDL. Nauunawaan mo ito sa harap ng talakayan.

Ano ang isang utos ng Truncate?

Ang layunin ng isang utos ng Truncate ay tanggalin ang buong talahanayan. Kaya kapag gumamit ka ng isang utos ng Truncate, mawawala mo ang lahat ng data sa mesa at dapat kang maging maingat sa paggamit nito. Ipaalam sa amin kung paano gamitin ito.

Ang syntax ng Truncate:

PAGSUBATIN TALAAN talahanayan-pangalan;

Dito, dapat mong tukuyin ang pangalan ng talahanayan na dapat tanggalin sa kabuuan. Tinitiyak nito na magkakaroon ng anumang talahanayan na nakaupo sa puwang ng memorya. Narito ang isang halimbawa ng paggamit ng Truncate.

Nasa ibaba ang talahanayan ng 'empleyado' at tingnan lamang ang mga hanay ng data dito.

emp-id emp-name pagtatalaga
1011 Jack Klerk
1012 Rosy Admin
1014 Nancy Pananalapi

Ngayon, ipaalam sa amin ang isyu sa ibaba command sa talahanayan ng empleyado.

PAGSUBATIN TALAAN empleado;

Narito ang nagresulta sa syntax sa itaas at walang data dito.

emp-id emp-name pagtatalaga

Ano ang isang Delete Command?

Ang layunin ng isang Delete command ay upang alisin ang tinukoy na mga hilera mula sa talahanayan. Dito, 'Saan' ang sugnay na ginagamit dito upang tukuyin ang mga hanay na kailangang tanggalin. Kapag hindi namin tinukoy ang mga hilera, tatanggalin ng command ang lahat ng mga hilera sa talahanayan. Tingnan lamang ang syntax nito.

GAWA SA MULA empleado;

Ang syntax sa itaas ay tinatanggal ang lahat ng mga hanay mula sa talahanayan ng 'empleyado'. Kaya ang nagreresulta sa talahanayan ay naglalaman ng walang data.

GAWA SA MULA empleado SAAN emp-id = 1011;

Ang pahayag na ito ay tinatanggal lamang ang isang solong hilera na ang emp-id ay 1011. Kaya ang nagreresulta na mesa ay magiging tulad ng sa ibaba.

emp-id emp-name pagtatalaga
1012 Rosy Admin
1014 Nancy Pananalapi

Pagkakaiba:

  • Ang Truncate ay isang DDL; Ang Delete ay isang DML: Napag-usapan natin kung paano gumagana ang DDL at ang DML sa aming talakayan sa itaas. Ang utos ng Truncate ay isang DDL at nagpapatakbo ito sa antas ng istraktura ng data. Ngunit ang Delete ay isang DML command at nagpapatakbo ito sa data ng talahanayan. Ang iba pang mga halimbawa para sa DDL ay LILIKHA at baguhin. Sa katulad na paraan, maaari naming sabihin ang mga utos tulad ng PUMILI, UPDATE, at INSERT ay perpektong mga halimbawa para sa isang DML.
  • Paano gumagana ang Truncate at Delete gumagana: Sa sandaling mag-isyu kami ng command na Truncate, tinitingnan lamang nito ang tinukoy na talahanayan. Pagkatapos ay ganap na inaalis nito ang lahat ng data mula sa memorya. Ngunit ang pamamaraan ng paggawa ay kaiba sa kaso ng isang Tanggalin. Dito, ang orihinal na data ng talahanayan ay kinopya sa espasyo na tinatawag na 'Roll back' space bago gawin ang aktwal na pagmamanipula ng data. Pagkatapos ay ang mga pagbabago ay tapos na sa aktwal na table data space. Kaya pareho silang pareho sa paraan ng paggawa nila.

Truncate -> alisin ang buong data mula sa talahanayan -> Ang puwang ng talahanayan ay napalaya ngayon.

Tanggalin -> Kopyahin ang orihinal na data ng talahanayan sa Roll Back space -> tanggalin ang tinukoy na data / buong talahanayan -> Ang espasyo ng talahanayan ay napalaya ngunit puno ng Roll Back space.

  • Bumalik: Ang roll back ay tulad ng isang undo command sa aming mga accessory ng Microsoft. Ito ay ginagamit upang kanselahin ang mga pagbabago na ginawa namin kamakailan i.e. mula sa huling naka-save na punto. Upang maisagawa ang operasyon, ang data ay dapat kopyahin sa puwang ng Roll Back bago ito ma-edit. Kahit na ang mga Roll backs ay nangangailangan ng sobrang memorya, ang mga ito ay lubhang kapaki-pakinabang upang makabalik sa orihinal. Lalo na, kapag may ilang pag-edit nang hindi sinasadya! Pumunta kami sa Truncate at Tanggalin may kinalaman sa Roll pabalik ngayon. Tulad ng aming tinalakay sa itaas, ang Truncate ay hindi gumagamit ng roll back space at hindi na kami makababalik sa orihinal na data. Ngunit ang Delete command ay gumagamit ng roll back space at maaari lamang naming gamitin ang 'Commit' o 'RollBack' upang tanggapin o kanselahin ang mga pagbabago ayon sa pagkakabanggit.
  • Mga Trigger: Para sa mga nangangailangan ng paliwanag tungkol sa mga nag-trigger, narito ang isang maliit na tala. Ang mga nag-trigger ay isang paunang tinukoy na hanay ng mga pagpapatakbo / operasyon na dapat na maisaaktibo kapag ang talahanayan ay nakatagpo ng isang partikular na kalagayan. Halimbawa, maaari naming mai-trigger ang pagbabago ng halaga ng suweldo kapag ang karanasan ng empleyado sa kumpanya ay higit sa isang taon. Ang mga nag-trigger na ito ay maaaring magtrabaho sa iba pang mga talahanayan pati na rin. Halimbawa, maaari naming i-update ang talahanayan sa pananalapi sa lalong madaling maglakad ang suweldo sa isang empleyado.

Ang Truncate ay isang command na DDL, hindi pinapayagan ang pag-trigger dito. Ngunit ang Delete ay isang DML command, Pinapayagan ang mga Trigger dito.

  • Alin ang mas mabilis? Habang nahuhulaan mo, ang command na Truncate ay magiging mas mabilis kaysa sa Delete command. Ang dating maaaring alisin ang lahat ng data at hindi na kailangang suriin para sa anumang mga kundisyon ng pagtutugma.Gayundin, ang orihinal na data ay hindi kinopya sa puwang ng rollback at nakakatipid ito ng maraming oras. Ang dalawang kadahilanan ay gumagawa ng Truncate na mas mabilis kaysa sa Delete.
  • Puwede ba nating gamitin ang Sugnay na SAAN? Ang 'Saan' na sugnay ay ginagamit upang tukuyin ang ilang mga kundisyon ng pagtutugma at walang kinalaman sa Truncate. Tulad ng Truncate hindi kailanman humahanap para sa anumang mga kundisyon ng pagtutugma at inaalis lamang nito ang lahat ng mga hanay, hindi namin maaaring gamitin ang isang 'Saan' sugnay dito. Ngunit maaari naming laging tukuyin ang kondisyon sa tulong ng 'saan' sugnay sa Delete command.
  • Aling sumasakop sa mas maraming espasyo? Ang truncate ay hindi magagamit ang puwang ng rollback at ini-imbak ang memory na iyon. Ngunit tanggalin ang mga pangangailangan ng isang backup sa anyo ng Rollback puwang at samakatuwid ito ay nangangailangan ng mas maraming memory space kaysa sa truncate.

Kaya ang mga ito ay ang mga pagkakaiba at ipaalam sa amin tumingin sa isang pangkat na hugis.

S.No Mga pagkakaiba sa Truncate Tanggalin
1. DDL o DML? Ito ay isang DDL at nagpapatakbo ito sa antas ng istraktura ng data. Ang iba pang mga halimbawa para sa DDL ay LILIKHA at baguhin. Ito ay isang DML command at nagpapatakbo ito sa data ng talahanayan. Ang DML ay nangangahulugang Wika ng Data Manipulation. Ang mga utos na tulad ng PUMILI, UPDATE, at INSERT ay perpektong mga halimbawa para sa isang DML. Ang DML ay nangangahulugang Wika ng Data Manipulation.

2. Paano ito gumagana? Sa sandaling mag-isyu kami ng command na Truncate, tinitingnan lamang nito ang tinukoy na talahanayan. Pagkatapos ay ganap na inaalis nito ang lahat ng data mula sa memorya. Dito, ang orihinal na data ng talahanayan ay kinopya sa espasyo na tinatawag na 'Roll back' space bago gawin ang aktwal na pagmamanipula ng data. Pagkatapos ay ang mga pagbabago ay tapos na sa aktwal na table data space.
3. RollBack Ang command ng Truncate ay hindi gumagamit ng roll back space at hindi na kami makababalik sa orihinal na data. Ang puwang ng Rollback ay isang eksklusibong isa at ginagawa kapag ang mga utos ng DML ay inilabas. Ang Delete command ay gumagamit ng roll back space at maaari lamang naming gamitin ang 'Commit' o 'RollBack' upang tanggapin o kanselahin ang mga pagbabago ayon sa pagkakabanggit.

4. Mga nag-trigger Ang Truncate ay isang command na DDL, hindi pinapayagan ang mga nag-trigger. Ang Delete ay isang DML command, Pinapayagan ang mga Trigger dito.

5. Alin ang mas mabilis? Maaari itong alisin ang lahat ng data at hindi na kailangang suriin para sa anumang mga kundisyon ng pagtutugma. Gayundin, ang orihinal na data ay hindi kinopya sa puwang ng rollback at nakakatipid ito ng maraming oras. Ang dalawang kadahilanan ay gumagawa ng Truncate na mas mabilis kaysa sa Delete.

Ginagamit nito ang puwang ng rollback at laging ang orihinal na data ay dapat panatilihin dito. Ito ay isang dagdag na pasanin at, gayunpaman, ay tumatagal ng maraming oras kaysa sa Truncate.
6. Puwede ba nating gamitin ang Sugnay na SAAN? Tulad ng Truncate hindi kailanman humahanap para sa anumang mga kundisyon ng pagtutugma at inaalis lamang nito ang lahat ng mga hanay, hindi namin maaaring gamitin ang isang 'Saan' sugnay dito. Ngunit maaari naming laging tukuyin ang kondisyon sa tulong ng 'saan' sugnay sa Delete command.
7. Aling sumasakop sa mas maraming espasyo? Ang truncate ay hindi magagamit ang puwang ng rollback at ini-imbak ang memory na iyon. Ito ay nangangailangan ng isang backup sa anyo ng Rollback puwang at samakatuwid ito ay nangangailangan ng mas maraming memory space kaysa sa truncate.

Ang pagkilala sa mga pagkakaiba sa pagitan ng anumang dalawang entidad ay nagpapalawak ng kaalaman sa kapwa! Nakarating ka sa isang landas na tama kung saan ang web page upang maunawaan ang mga pagkakaiba, lalo na, sa pagitan ng truncate at tanggalin ang mga utos. Sana ay malinaw na ngayon sa mga pagkakaiba nito at ipaalam sa amin kung nakatulong kami na maunawaan mo ito. Maaari mo ring tulungan kaming ituro kung saan naiwan!