Poista vs. katkaise
Sekä SQL (Structure Query Language) -komentoja, Poista että Leikkaa käytetään poistamaan tietokannan taulukoihin tallennetuista tiedoista. Poista on DML (Data Manipulation Language) -käsky, joka poistaa osan tai kaikki taulukon rivit. 'Jos -lauseketta' käytetään määrittämään poistettavat rivit, ja jos -lauseketta ei käytetä Poista-käskyn kanssa, se poistaa kaikki taulukon tiedot. Truncate on DDL (Data Definition Language) -lauseke, joka poistaa kokonaiset tiedot taulukosta. Molemmat komennot eivät tuhoa taulukon rakennetta ja viittauksia taulukkoon, ja vain tiedot poistetaan tarpeen mukaan.
Poista lause
Poista-lause antaa käyttäjän poistaa tiedot tietokannan olemassa olevasta taulukosta tietyn ehdon perusteella, ja 'Ehto-lauseketta' käytetään tämän ehdon määrittämiseen. Poista-komentoa kutsutaan kirjatuksi suoritukseksi, koska se poistaa vain yhden rivin kerrallaan ja pitää merkinnän kustakin rivin poistosta tapahtumalokista. Joten tämä aiheuttaa toiminnan hidastumisen. Poista on DML-käsky, joten sitä ei suoriteta automaattisesti komennon suorituksen aikana. Siksi poistotoiminto voidaan palauttaa takaisin tietojen käyttämiseksi tarvittaessa. Poista-komennon suorittamisen jälkeen se on sidottava tai palautettava, jotta muutokset voidaan tallentaa pysyvästi. Poista lause ei poista taulukon taulukon rakennetta tietokannasta. Se ei myöskään jaa taulukon käyttämää muistitilaa.
Tyypillinen Poista-komennon syntaksit on mainittu alla.
POISTA
tai
POISTA MISTÄ
Katkaise lausunto
Truncate-lause poistaa kaikki tiedot tietokannan olemassa olevasta taulukosta, mutta säilyttää saman taulukorakenteen, myös eheysrajoitukset, käyttöoikeudet ja suhteet muihin taulukoihin. Joten taulukkoa ei tarvitse määrittää uudelleen, ja vanhaa taulukkorakennetta voidaan käyttää, jos käyttäjä haluaa käyttää taulukkoa uudelleen. Truncate poistaa kokonaiset tiedot jakamalla tietojen säilyttämiseen käytetyt tietosivut, ja vain nämä sivujakaumat pidetään tapahtumalokissa. Siksi katkaisukomento käyttää vain vähemmän järjestelmän ja tapahtumalokin resursseja toimintaan, joten se on nopeampi kuin muut siihen liittyvät komennot. Truncate on DDL-komento, joten se käyttää automaattisia sitoumuksia ennen käskyn suorittamista ja sen jälkeen. Siksi katkaisu ei voi palauttaa tietoja millään tavalla takaisin. Se vapauttaa muistitilan, jota taulukko käyttää suorituksen jälkeen. Truncate-käskyä ei kuitenkaan voida soveltaa taulukoihin, joihin ulkomaisten avainten rajoitukset viittaavat.
Seuraava on lyhennetyn lauseen yleinen syntaksia.
LASKUTUSTAULUKKO
Mitä eroa on Poista ja Leikkaa? 1. Poista ja katkaise -komennot poistavat tiedot tietokannan olemassa olevista taulukoista vahingoittamatta taulukon rakennetta tai muita viittauksia taulukkoon. 2. Poista-komentoa voidaan kuitenkin käyttää tiettyjen rivien poistamiseen vain taulukosta asiaankuuluvan ehdon avulla tai kaikkien rivien poistamiseksi ilman ehtoja, kun taas Katkaise-komentoa voidaan käyttää vain taulukon kaikkien tietojen poistamiseen. 3. Delete on DML-komento, ja se voi tarvittaessa palata operaatioon, mutta Truncate on DDL-komento, joten se on automaattinen sitoutumislauseke, eikä sitä voida palauttaa millään tavalla. Joten on tärkeää käyttää tätä komentoa huolellisesti tietokannan hallinnassa. 4. Leikkaustoiminto kuluttaa vähemmän järjestelmäresursseja ja tapahtumalokiresursseja kuin poisto-operaatio, joten katkaisua pidetään nopeammin kuin Poista. 5. Delete ei myöskään jaa taulukon käyttämää tilaa, kun taas Truncate vapauttaa suorituksen jälkeen käytetyn tilan, joten Delete ei ole tehokas, jos koko data poistetaan tietokantataulukosta. 6. Truncatea ei kuitenkaan saa käyttää, kun taulukkoon viittaa vierasavaimen rajoitus, ja siinä tapauksessa Truncate-toiminnon sijaan voidaan käyttää Delete-komentoa. 7. Lopuksi molemmilla komennoilla on etuja ja haittoja niiden soveltamisessa tietokannan hallintajärjestelmiin, ja käyttäjän tulisi olla tietoinen näiden komentojen asianmukaisesta käytöstä hyvien tulosten saavuttamiseksi. |