Database
 sql >> Datenbank >  >> RDS >> Database

Löschen vs. Abschneiden in SQL

In diesem Artikel lernen und verstehen wir die Befehle Drop und Truncate und den Unterschied zwischen diesen beiden Befehlen.

Was ist Drop-Befehl?

Drop ist ein Data Definition Language-Befehl in der Structured Query Language. Der Drop-Befehl in SQL wird verwendet, um die Tabellendefinition, die Datenbank, Indizes, Ansichten, Trigger und Dateneinschränkungen aus den Datenbanktabellen zu löschen oder zu löschen.

In der Structured Query Language wird der Drop-Befehl verwendet, um die Elemente aus dem relationalen Datenbankverwaltungssystem (RDBMS) zu löschen.

Der Delete-Befehl kann Daten zurücksetzen, sobald er ausgeführt wurde, aber die Drop-Befehle können Daten nicht zurücksetzen, sobald er ausgeführt wurde. Der Drop-Befehl wird verwendet, um Speicher freizugeben, in dem Tabellenbereich gespeichert ist, da Drop-Befehle die Tabelle und ihren Inhalt dauerhaft löschen.

Der Befehl „Drop“ ist im Vergleich zum Befehl „truncate“ in der Structured Query Language schnell. Aber das Ausführungstiming des Drop-Befehls ist langsam, weil er viele Komplikationen hat.

Um eine oder mehrere Spalten aus der Tabelle zu löschen, verwenden wir den drop-Befehl mit dem ALTER TABLE-Befehl.

Die Syntax für den DROP-Befehl zum Entfernen der Datenbank lautet wie folgt:

DROP DATABASE Database_Name;

In der obigen Syntax müssen wir den Datenbanknamen angeben, den wir aus dem System löschen möchten.

Hinweis:- Seien Sie vorsichtig, bevor Sie den DROP-Befehl zum Löschen der Datenbank verwenden, da die Drop-Befehle alle in der Datenbank erstellten Objekte wie Tabellen, Indizes, Ansichten und Trigger aus der Datenbank entfernen.

Die Syntax zum Entfernen der Tabelle lautet wie folgt:

DROP TABLE Table_Name;

In der obigen Syntax müssen wir den Tabellennamen angeben, den wir aus der Datenbank löschen möchten.

Die Syntax zum Entfernen mehrerer Tabellen aus derselben Datenbank in einer einzigen Anweisung lautet wie folgt:

DROP TABLE table1, table2, table3;

Mit der obigen Syntax können wir mehrere Tabellen aus derselben Datenbank löschen.

Die Syntax zum Entfernen des Index lautet wie folgt:

DROP INDEX Index_Name;

Wir müssen den Indexnamen in der obigen Syntax direkt nach dem Indexschlüsselwort angeben.

Die Syntax zum Entfernen der Ansicht lautet wie folgt:

DROP VIEW View_Name;

Wir müssen den View-Namen in der obigen Syntax direkt nach dem View-Schlüsselwort angeben.

Die Syntax zum Entfernen der Einschränkung aus der Tabelle mithilfe von ALTER TABLE lautet wie folgt:

ALTER TABLE Table_Name DROP CONSTRAINT Constraint_Name;

Mit dem ALTER TABLE-Befehl in SQL können wir die Einschränkung aus der Tabelle löschen.

Beispiel für einen DROP-Befehl:

Wir nehmen ein paar Beispiele mit dem DROP-Befehl.

Schritt 1: Erstellen Sie eine Datenbank oder verwenden Sie eine vorhandene Datenbank. Wir werden zwei Datenbanken für den DROP-Befehl verwenden.

Schritt 2: Erstellen Sie eine neue Tabelle oder verwenden Sie eine vorhandene Tabelle, einen Index oder eine vorhandene Ansicht.

Beispiel 1: Schreiben Sie eine Abfrage, um die Tabelle students_information aus der Schuldatenbank zu löschen.

Wir wählen zuerst die Schuldatenbank mit dem Schlüsselwort USE gefolgt vom Datenbanknamen aus.

USE School;

Wir schreiben den Drop-Befehl, um die students_information-Tabelle aus der ausgewählten Datenbank zu löschen.

Betrachten Sie die Tabelle Students_information mit den folgenden Einträgen:

Student_ID Schüler_Name Student_Course Student_Marks
1 Anjali BCOM 85
2 Pranav BCA 80
3 Yogesh B.E. 88
4 Bhushan MBA 95
5 Poonam MCOM 97
6 Bhavesh B.E. 90
7 Chushi BSC 94
8 Pijusch BCOM 75
9 Nikita BA 88
10 Aishwariya BSC 70
DROP TABLE Students_Information;

Wir haben die Tabelle Students_information mit allen Datensätzen aus der obigen Abfrage gelöscht.

Um zu überprüfen, ob die Abfrage erfolgreich ausgeführt wurde oder nicht, führen wir die SELECT-Abfrage aus.

SELECT * FROM Students_Information;

Wenn wir die select-Abfrage auf der Tabelle Students_information ausführen, wird die Meldung table does not exist angezeigt, was bedeutet, dass die Abfrage des Drop-Befehls auf der Tabelle Students_information erfolgreich ausgeführt wurde.

Beispiel 2: Schreiben Sie eine Abfrage, um die Ansicht manager_view1 aus der Unternehmensdatenbank zu löschen.

Betrachten Sie die Ansicht manager_view1 mit den folgenden Datensätzen:

MANAGERID MANAGER_NAME MANAGER_DEPARTMENT
1 Snehdeep Kaur ORACLE
3 Abhishek Manish JAVA

Wir schreiben den Drop-Befehl, um die Ansicht manager_view1 aus der ausgewählten Datenbank zu löschen.

DROP VIEW Manager_view1;

Wir haben die Ansicht manager_view1 aus der obigen Abfrage entfernt, wobei alle Datensätze in der Ansicht enthalten sind.

Um zu überprüfen, ob die Abfrage erfolgreich ausgeführt wurde oder nicht, führen wir die SELECT-Abfrage aus.

SELECT * FROM Manager_view1;

Wenn wir die Auswahlabfrage für die Ansicht manager_view1 ausführen, wird die Meldung „Ansicht existiert nicht“ angezeigt, was bedeutet, dass die Abfrage des Drop-Befehls für die Ansicht manager_view1 erfolgreich ausgeführt wurde.

Beispiel 3: Schreiben Sie eine Abfrage, um die Cricket-Datenbank aus dem System zu löschen.

Bevor wir den Drop-Befehl für die Datenbank ausführen, führen wir zuerst den Befehl show databases aus, um am Ende des Drop-Befehls zu überprüfen, ob wir die Cricket-Datenbank erfolgreich aus dem System gelöscht haben.

SHOW DATABASES;
Datenbank
Chk
Unternehmen
Cricket
Mitarbeiter
Informationsschema
Mysql
Leistungsschema
Phpmyadmin
Schule
Test
WordPress

Oben sind die Datenbanken, die bereits im System vorhanden sind; Wir löschen die Cricket-Datenbank aus dem System. Das Löschen der Datenbank bedeutet das Löschen aller Objekte, die in der Datenbanktabelle, der Ansicht, dem Index, den Triggern usw. vorhanden sind.

Jetzt führen wir eine Abfrage zum Löschen der Cricket-Datenbank aus.

DROP DATABASE Cricket;

Wir haben die Drop-Abfrage auf der Cricket-Datenbank ausgeführt. Um zu überprüfen, ob die Datenbank erfolgreich gelöscht wurde oder nicht, führen wir die Abfrage SHOW DATABASES aus.

SHOW DATABASES;
Datenbank
Chk
Unternehmen
Mitarbeiter
Informationsschema
Mysql
Leistungsschema
Phpmyadmin
Schule
Test
WordPress

Wie Sie sehen können, wurde die Cricket-Datenbank erfolgreich aus dem System entfernt.

Beispiel 4: Schreiben Sie eine Abfrage, um die Nachnamenspalte aus der Mitarbeitertabelle zu löschen.

ALTER TABLE employee DROP Last_Name;

Wir haben die Spalte „Last_Name“ aus der Tabelle „Employee“ mithilfe des DROP-Befehls mit dem ALTER-Befehl in der obigen Abfrage gelöscht.

Feld Typ Null Schlüssel Standard Extra
MITARBEITERID int(11) NEIN PRI NULL
VORNAME varchar(20) JA NULL
GEHALT int(11) JA NULL
STADT varchar(20) JA NULL
ABTEILUNG varchar(20) JA NULL
MANAGERID int(11) JA NULL

Die obige Ausgabe zeigt, dass Last_Name aus der Mitarbeitertabelle gelöscht wird.

Was ist der Truncate-Befehl?

Truncate ist ein weiterer Data Definition Language-Befehl in der Structured Query Language. Der Truncate-Befehl wird verwendet, um alle Datensätze aus der Tabelle zu löschen. Wie der DROP-Befehl, aber der TRUNCATE-Befehl enthält keine WHERE-Klausel. Der Truncate-Befehl ist schneller als der DROP- und der DELETE-Befehl. Wir können die Datensätze nicht wie mit dem DROP-Befehl zurücksetzen, nachdem wir den TRUNCATE-Befehl verwendet haben.

Syntax des TRUNCATE-Befehls in SQL:

TRUNCATE TABLE tablename;

In der obigen Syntax müssen wir den Tabellennamen angeben, dessen Daten wir aus der Tabelle löschen möchten.

Wir nehmen ein paar Beispiele mit dem TRUNCATE-Befehl.

Beispiel für den TRUNCATE-Befehl:

Schritt 1: Erstellen Sie eine Datenbank oder verwenden Sie eine vorhandene Datenbank.

Schritt 2: Erstellen Sie eine neue Tabelle oder verwenden Sie eine vorhandene Tabelle.

Betrachten Sie die vorhandene Tabelle mit den folgenden Datensätzen:

Tabelle:Mitarbeiter:

MITARBEITERID FIRST_NAME NACHNAME GEHALT STADT ABTEILUNG MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NICHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUSCHIKA JAIN 50000 MUMBAI C# 5
3001 PRANOTI SCHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOLD 60500 MUMBAI TESTEN 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUSCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4

Beispiel: Schreiben Sie eine Abfrage, um alle Datensätze aus der Mitarbeitertabelle mit dem Befehl truncate zu löschen.

TRUNCATE TABLE Employee;

Wir haben alle Datensätze aus der obigen Abfrage aus der Mitarbeitertabelle gelöscht.

Um zu überprüfen, ob alle Datensätze aus der Mitarbeitertabelle gelöscht wurden oder nicht, führen wir die SELECT-Abfrage für die Mitarbeitertabelle aus.

SELECT * FROM Employee;
MITARBEITERID FIRST_NAME NACHNAME GEHALT STADT ABTEILUNG MANAGERID

Während wir die select-Abfrage für die Employee-Tabelle ausführen, wird die leere Set-Meldung angezeigt, was bedeutet, dass der Befehl zum Abschneiden in der Employee-Tabelle erfolgreich ausgeführt wurde.

Die folgenden Punkte zeigen den Unterschied zwischen dem Drop-Befehl und dem Truncate-Befehl in der Structured Query Language:

Der DROP-Befehl Der TRUNCATE-Befehl
Der DROP-Befehl löscht die Tabellenstruktur und die Tabellensätze. Der Befehl TRUNCATE löscht alle Datensätze aus der Tabelle.
Der DROP-Befehl ist ein Data Definition Language-Befehl. Der TRUNCATE-Befehl ist auch ein Data Definition Language-Befehl.
Im DROP-Befehl ist der Tabellenbereich frei von Speicher Der TRUNCATE-Befehl gibt den Tabellenbereich nicht aus dem Speicher frei.
Die Tabellenansicht existiert nicht im DROP-Befehl Die Tabellenansicht existiert im TRUNCATE-Befehl
Im DROP-Befehl können wir kein Leerzeichen verwenden. Im TRUNCATE-Befehl können wir Löschraum verwenden, aber weniger als im Vergleich zur DELETE-Anweisung.
Im DROP-Befehl werden die Integritätsbedingungen automatisch aus der Tabelle entfernt. Die Integritätsbeschränkungen werden im TRUNCATE-Befehl nicht aus der Tabelle entfernt.
Der DROP-Befehl löscht die Datensätze schnell, aber es gibt viele Komplikationen. Der TRUNCATE-Befehl ist schneller als der DROP-Befehl.