LÖSCHEN ist ein DML-Befehl (Data Manipulation Language) und wird verwendet, wenn wir die Zeile (Tupel) angeben, die wir aus der Tabelle oder Beziehung entfernen oder löschen möchten. Der DELETE-Befehl kann eine WHERE-Klausel enthalten. Wenn die WHERE-Klausel mit dem DELETE-Befehl verwendet wird, werden nur die Zeilen (Tupel) entfernt oder gelöscht, die die Bedingung erfüllen. Andernfalls werden standardmäßig alle Tupel (Zeilen) aus der Tabelle entfernt. Denken Sie daran, dass DELETE die Zeilenlöschungen protokolliert.
Syntax:
AUS Tabellenname LÖSCHEN
WHERE-Bedingung;
Zeichenfolge zu Zeichen
KÜRZEN ist ein DDL-Befehl (Data Definition Language) und wird zum Löschen aller Zeilen oder Tupel aus einer Tabelle verwendet. Im Gegensatz zum DELETE-Befehl enthält der TRUNCATE-Befehl kein a WHERE-Klausel . Im TRUNCATE-Befehl wird das Transaktionsprotokoll für jede gelöschte Datenseite nicht aufgezeichnet. Im Gegensatz zum DELETE-Befehl ist der TRUNCATE-Befehl schnell. Wir können die Daten nach Verwendung des TRUNCATE-Befehls nicht zurücksetzen.
Syntax:
TRUNCATE TABLE TableName;
Lassen Sie uns es anhand eines einfachen Beispiels verstehen, in dem wir eine Dummy-Tabelle erstellen und dann den Löschvorgang durchführen.
Abfrage:
CREATE table Employee ( Emp_id int, name VARCHAR(20), country VARCHAR(20), Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000), (103, 'Anish', 'England', 70000), (104, 'Shubham', 'France', 100000), (102, 'Danish', 'Sweden', 40000), (105, 'Vivek', 'Wales', 50000), (106, 'Rohan', 'Scotland', 30000); Select * from Employee ;>
Ausgabe

Mitarbeitertisch
Beispiel für einen Löschbefehl:
Sie müssen nun eine Abfrage erstellen, um den letzten Eintrag mit dem Wert 106 für die Emp_id zu entfernen.
Abfrage:
Delete from Employee where Emp_id = 106;>
Ausgabe

Ausgabe
Beispiel für den TRUNCATE-Befehl
Um in diesem Fall alle Datensätze vollständig von den Tischspielern zu entfernen, verwenden Sie den Befehl truncate.
Abfrage:
TRUNCATE TABLE Employee;>
Unterschiede zwischen DELETE und TRUNCATE
| Löschen | Kürzen |
|---|---|
| Der DELETE-Befehl wird verwendet, um bestimmte Zeilen (eine oder mehrere) zu löschen. | Während dieser Befehl verwendet wird, um alle Zeilen aus einer Tabelle zu löschen. |
| es ist ein DML (Datenmanipulationssprache) Befehl. | Während es ein ist DDL (Datendefinitionssprache) Befehl. |
| Möglicherweise enthält der DELETE-Befehl eine WHERE-Klausel, um die Datensätze zu filtern. | Der TRUNCATE-Befehl enthält möglicherweise keine WHERE-Klausel. |
| Im DELETE-Befehl wird ein Tupel gesperrt, bevor es entfernt wird. | Während dieses Befehls wird die Datenseite gesperrt, bevor die Tabellendaten entfernt werden. |
| Die DELETE-Anweisung entfernt Zeilen einzeln und zeichnet für jede gelöschte Zeile einen Eintrag im Transaktionsprotokoll auf. | TRUNCATE TABLE entfernt die Daten durch Freigabe der Datenseiten, die zum Speichern der Tabellendaten verwendet werden, und zeichnet nur die Seitenfreigaben im Transaktionsprotokoll auf. |
| Der DELETE-Befehl ist langsamer als der TRUNCATE-Befehl. | Der TRUNCATE-Befehl ist zwar schneller als der DELETE-Befehl. |
| Um „Löschen“ verwenden zu können, benötigen Sie die DELETE-Berechtigung für die Tabelle. | Um Truncate für eine Tabelle verwenden zu können, benötigen wir mindestens ÄNDERN Erlaubnis auf dem Tisch. |
| Die Identität der kleineren Spalte behält die Identität bei, nachdem die DELETE-Anweisung für die Tabelle verwendet wurde. | Wenn die Tabelle eine Identitätsspalte enthält, wird die Identitätsspalte auf ihren Startwert zurückgesetzt. |
| Das Löschen kann mit indizierten Ansichten verwendet werden. | Truncate kann nicht mit indizierten Ansichten verwendet werden. |
| Dieser Befehl kann auch aktiv ausgelöst werden. | Dieser Befehl löst nicht aktiv aus. |
| Die DELETE-Anweisung belegt mehr Transaktionsspeicher als die Truncate-Anweisung. | Die Truncate-Anweisung belegt weniger Transaktionsspeicher als die DELETE-Anweisung. |
| Löschvorgänge können rückgängig gemacht werden. | TRUNCATE kann nicht zurückgesetzt werden, da es ein implizites Commit verursacht. |
| Beim Löschen wird nicht die gesamte Tabelle gelöscht. Es erhält eine Sperre für die Tabelle und beginnt mit dem Löschen der Zeilen. | TRUNCATE löscht zuerst die Tabelle und erstellt sie dann neu, was schneller ist als das Löschen einzelner Zeilen. |
Abschluss
In diesem Artikel, SQL Entwickler können die Zeilen entsprechend entfernen, indem sie die Befehle DELETE und TRUNCATE korrekt verwenden. Der Befehl TRUNCATE muss mit Vorsicht verwendet werden, da er alle Datensätze der Tabelle löscht. Anfänger werden auch von der Erläuterung der Unterschiede zwischen den Befehlen „Löschen“ und „Truncate“ in diesem Tutorial profitieren.
LÖSCHEN:
- Sie möchten alle Mitarbeiter, die in den letzten sechs Monaten nichts gekauft haben, aus einer Tabelle entfernen.
- Sie möchten einen Mitarbeiter aus einer Tabelle entfernen.
KÜRZEN:
- Sie möchten den Inhalt der Tabelle in seinen ursprünglichen Zustand zurückversetzen.
- Sie müssen die Daten nicht wiederherstellen können; Sie möchten es einfach ganz aus der Tabelle entfernen.