sql >> Database >  >> RDS >> Database

Drop vs Truncate in SQL

In dit artikel zullen we de commando's Drop en Truncate leren en begrijpen, en het verschil tussen deze twee commando's.

Wat is Drop Command?

Drop is een Data Definition Language-opdracht in de Structured Query Language. De opdracht Drop in SQL wordt gebruikt om de tabeldefinitie, de database, indexen, weergave, triggers en gegevensbeperkingen uit de databasetabellen te verwijderen of te verwijderen.

In de Structured Query Language wordt het drop-commando gebruikt om de elementen uit het relationele databasebeheersysteem (RDBMS) te verwijderen.

Met de opdracht Verwijderen kunnen gegevens worden teruggedraaid zodra deze zijn uitgevoerd, maar met de opdracht Verwijderen kunnen gegevens niet worden teruggedraaid nadat deze zijn uitgevoerd. Het Drop-commando wordt gebruikt om geheugen vrij te maken waar tabelruimte is opgeslagen, omdat drop-commando's de tabel en de inhoud ervan permanent verwijderen.

De opdracht Drop is snel in vergelijking met de opdracht truncate in de Structured Query Language. Maar de uitvoeringstiming van het drop-commando is traag omdat het veel complicaties heeft.

Om een ​​of meer kolommen uit de tabel te verwijderen, gebruiken we het drop-commando met het ALTER TABLE-commando.

De syntaxis voor het DROP-commando om de database te verwijderen is als volgt:

DROP DATABASE Database_Name;

In de bovenstaande syntaxis moeten we de databasenaam specificeren die we van het systeem willen verwijderen.

Opmerking:- Wees voorzichtig voordat u het DROP-commando gebruikt voor het verwijderen van de database, omdat de drop-commando's alle objecten uit de database verwijderen, zoals tabellen, indexen, views, triggers die in de database zijn gemaakt.

De syntaxis voor het verwijderen van de tabel is als volgt:

DROP TABLE Table_Name;

In de bovenstaande syntaxis moeten we de tabelnaam specificeren die we uit de database willen verwijderen.

De syntaxis voor het verwijderen van meerdere tabellen uit dezelfde database in een enkele instructie is als volgt:

DROP TABLE table1, table2, table3;

We kunnen meerdere tabellen uit dezelfde database verwijderen met behulp van de bovenstaande syntaxis.

De syntaxis voor het verwijderen van de index is als volgt:

DROP INDEX Index_Name;

We moeten de indexnaam in de bovenstaande syntaxis specificeren, net na het Index-trefwoord.

De syntaxis voor het verwijderen van de weergave is als volgt:

DROP VIEW View_Name;

We moeten de weergavenaam specificeren in de bovenstaande syntaxis net na het View-trefwoord.

De syntaxis voor het verwijderen van de beperking uit de tabel met behulp van de ALTER TABLE is als volgt:

ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

Met behulp van het ALTER TABLE-commando in de SQL kunnen we de beperking uit de tabel verwijderen.

Voorbeeld van DROP-opdracht:

We zullen een paar voorbeelden nemen met het DROP-commando.

Stap 1: Maak een database of gebruik een bestaande database. We zullen twee databases gebruiken voor het DROP-commando.

Stap 2: Maak een nieuwe tabel of gebruik een bestaande tabel, index, weergave.

Voorbeeld 1: Schrijf een vraag om de tabel Students_information uit de schooldatabase te verwijderen.

We zullen eerst de schooldatabase selecteren met behulp van het USE-sleutelwoord gevolgd door de databasenaam.

USE School;

We zullen het drop-commando schrijven om de tabel Students_information uit de geselecteerde database te verwijderen.

Beschouw de tabel Students_information met de volgende records:

Student_Id Naam leerling Student_Course Student_Marks
1 Anjali BCOM 85
2 Pranav BCA 80
3 Yogesh BE 88
4 Bhushan MBA 95
5 Poonam MCOM 97
6 Bhavesh BE 90
7 Khushi BSC 94
8 Piyush BCOM 75
9 Nikita BA 88
10 Aishwariya BSC 70
DROP TABLE Students_Information;

We hebben de tabel Students_information verwijderd met alle records die in de tabel aanwezig zijn uit de bovenstaande zoekopdracht.

Om te controleren of de query met succes is uitgevoerd of niet, voeren we de SELECT-query uit.

SELECT * FROM Students_Information;

Terwijl we de select-query uitvoeren op de Students_information-tabel, wordt het bericht tabel bestaat niet weergegeven, wat betekent dat de Drop-opdrachtquery in de Students_information-tabel met succes wordt uitgevoerd.

Voorbeeld 2: Schrijf een query om de manager_view1-weergave uit de bedrijfsdatabase te verwijderen.

Overweeg de weergave manager_view1 met de volgende records:

MANAGERID MANAGER_NAME MANAGER_DEPARTMENT
1 Snehdeep Kaur ORAKLE
3 Abhishek Manish JAVA

We zullen het drop-commando schrijven om de manager_view1-weergave uit de geselecteerde database te verwijderen.

DROP VIEW Manager_view1;

We hebben de manager_view1-weergave van de bovenstaande zoekopdracht verwijderd met alle records die in de weergave aanwezig zijn.

Om te controleren of de query met succes is uitgevoerd of niet, voeren we de SELECT-query uit.

SELECT * FROM Manager_view1;

Terwijl we de selectiequery uitvoeren in de manager_view1-weergave, wordt het bericht 'weergave bestaat niet' weergegeven, wat betekent dat de opdracht 'Drop command' op de manager_view1-weergave met succes wordt uitgevoerd.

Voorbeeld 3: Schrijf een vraag om de Cricket-database uit het systeem te verwijderen.

Voordat we het drop-commando voor de database uitvoeren, voeren we eerst het show databases-commando uit om aan het einde van het drop-commando te controleren of we de Cricket-database met succes van het systeem hebben verwijderd.

SHOW DATABASES;
Database
Chk
Bedrijf
Cricket
Werknemer
Information_schema
Mysql
Performance_schema
Phpmyadmin
School
Test
WordPress

Hierboven staan ​​de databases die al in het systeem bestaan; we zullen de Cricket-database uit het systeem verwijderen. Het verwijderen van de database betekent het verwijderen van alle objecten die aanwezig zijn in de databasetabel, weergave, index, triggers, enz.

Nu zullen we een query uitvoeren om de Cricket-database te verwijderen.

DROP DATABASE Cricket;

We hebben de drop-query uitgevoerd op de Cricket-database. Om te controleren of de database succesvol is verwijderd of niet, zullen we de SHOW DATABASES-query uitvoeren.

SHOW DATABASES;
Database
Chk
Bedrijf
Werknemer
Information_schema
Mysql
Performance_schema
Phpmyadmin
School
Test
WordPress

Zoals je kunt zien, is de cricket-database met succes uit het systeem verwijderd.

Voorbeeld 4: Schrijf een zoekopdracht om de achternaamkolom uit de werknemerstabel te verwijderen.

ALTER TABLE employee DROP Last_Name;

We hebben de kolom Last_Name uit de werknemerstabel verwijderd met behulp van het DROP-commando met het ALTER-commando in de bovenstaande query.

Veld Type Null Sleutel Standaard Extra
WERKNEMER-ID int(11) NEE PRI NULL
FIRST_NAME varchar(20) JA NULL
SALARIS int(11) JA NULL
STAD varchar(20) JA NULL
AFDELING varchar(20) JA NULL
MANAGERID int(11) JA NULL

De bovenstaande uitvoer laat zien dat Last_Name is verwijderd uit de werknemerstabel.

Wat is Truncate Command?

Truncate is een ander Data Definition Language-commando in de Structured Query Language. De opdracht Truncate wordt gebruikt om alle records uit de tabel te verwijderen. Zoals het DROP-commando, maar het TRUNCATE-commando bevat geen WHERE-clausule. De opdracht Truncate is sneller dan zowel de opdracht DROP als de opdracht DELETE. We kunnen de records niet terugdraaien zoals het DROP-commando na gebruik van het TRUNCATE-commando.

Syntaxis van de opdracht TRUNCATE in SQL:

TRUNCATE TABLE tablename;

In de bovenstaande syntaxis moeten we de tabelnaam vermelden waarvan we de gegevens uit de tabel willen verwijderen.

We zullen een paar voorbeelden nemen met het TRUNCATE-commando.

Voorbeeld van TRUNCATE-opdracht:

Stap 1: Maak een database of gebruik een bestaande database.

Stap 2: Maak een nieuwe tafel of gebruik een bestaande tafel.

Beschouw de bestaande tabel met de volgende records:

Tabel:Medewerker:

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORAKLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORAKLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4

Voorbeeld: Schrijf een query om alle records uit de werknemerstabel te verwijderen met behulp van het truncate-commando.

TRUNCATE TABLE Employee;

We hebben alle records van de bovenstaande zoekopdracht uit de werknemerstabel verwijderd.

Om te controleren of alle records uit de werknemerstabel zijn verwijderd of niet, voeren we de SELECT-query uit op de werknemerstabel.

SELECT * FROM Employee;
WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID

Terwijl we de select-query uitvoeren op de werknemerstabel, wordt het lege set-bericht weergegeven, wat betekent dat het truncate-commando op de werknemerstabel met succes wordt uitgevoerd.

De onderstaande punten laten het verschil zien tussen de opdracht Drop en de opdracht Truncate in de Structured Query Language:

Het DROP-commando Het TRUNCATE-commando
Het DROP-commando verwijdert de tabelstructuur en tabelrecords. Het TRUNCATE-commando verwijdert alle records uit de tabel.
Het DROP-commando is een Data Definition Language-commando. Het TRUNCATE-commando is ook een Data Definition Language-commando.
In het DROP-commando is tabelruimte vrij van geheugen Het TRUNCATE-commando maakt de tabelruimte niet vrij uit het geheugen.
De tabelweergave bestaat niet in het DROP-commando De tabelweergave bestaat in het TRUNCATE-commando
In het DROP-commando kunnen we geen delete-spatie gebruiken. In het TRUNCATE-commando kunnen we delete-ruimte gebruiken, maar minder dan in vergelijking met het DELETE-statement.
In het DROP-commando worden de integriteitsbeperkingen automatisch uit de tabel verwijderd. De integriteitsbeperkingen worden niet verwijderd uit de tabel in het TRUNCATE-commando.
Het DROP-commando verwijdert de records snel, maar er zijn veel complicaties. Het TRUNCATE-commando is sneller dan het DROP-commando.


  1. Oracle MINUS-operator uitgelegd

  2. PSQLEException:ResultSet niet goed gepositioneerd, misschien moet je hierna bellen

  3. Is Microsoft Access gemakkelijk te leren?

  4. Hoe Zabbix op Ubuntu 20.04 te installeren en configureren?