logo

Declaració SQL DELETE

La instrucció SQL DELETE s'utilitza per eliminar files específiques d'una taula mentre es manté intacta l'estructura de la taula. És diferent de DROP que elimina tota la taula.

  • Elimina les files en funció de les condicions.
  • Conserva les restriccions i els índexs d'esquema de taula.
  • Pot suprimir una sola fila o totes les files.

Exemple: Primer ho farem crear una base de dades SQL de demostració i una taula en què utilitzarem l'ordre SQL DELETE.

Dels' title=

Consulta:



DELETE FROM Employees  
WHERE EmployeeID = 5;

Sortida:

patrons de disseny java
Fila suprimida-' loading='lazy' title=
  • Aquesta consulta elimina la fila de la taula Employees on l'EmployeeID és 5.
  • Només s'elimina aquest registre específic; totes les altres files es mantenen sense canvis.

Sintaxi:

DELETE FROM table_name   
WHERE some_condition;
  • Alguna_condició: Una condició que s'utilitza per filtrar les files que voleu suprimir.
  • nom_taula: El nom de la taula de la qual voleu suprimir les files.

Nota: Podem suprimir registres únics o múltiples mitjançant la clàusula WHERE; si s'omet, s'eliminen tots els registres de la taula.

Exemples de la instrucció SQL DELETE

Suposem que hem creat una taula anomenada GFG_Employee en SQL que conté les dades personals de l'empleat, inclòs el seu nom d'identificador, correu electrònic i departament, etc., tal com es mostra a continuació.

CREA LA TAULA GFG_Empleats (
id INT CLAU PRIMÀRIA
nom VARCHAR (20)
correu electrònic VARCHAR (25)
departament VARCHAR(20)
);

INSERT INTO GFG_Employees (id nom departament de correu electrònic) VALORS
(1 'Jessie' '[email protected]' 'Desenvolupament')
(2 'Praveen' '[email protected]' 'HR')
(3 'Pot' '[email protected]' 'Vendes')
(4 'Rithvik' '[email protected]' 'IT')
(5 'Suraj' '[email protected]' 'Garantia de qualitat')
(6 'Om' '[email protected]' 'IT')
(7 'Naruto' '[email protected]' 'Desenvolupament');

Seleccioneu * De GFG_Employees

memòria virtual

Sortida:

GFG_empleat' loading='lazy' title=

Exemple 1: suprimir un registre únic

Podem utilitzar la instrucció DELETE amb una condició per eliminar una fila específica d'una taula. El ON la clàusula garanteix que només s'elimini el registre previst. Podem suprimir els registres anomenats Rithvik mitjançant la consulta següent:

Consulta:

DELETE FROM GFG_Employees   
WHERE NAME = 'Rithvik';

Sortida:

informació suprimida' loading='lazy' title=

Exemple 2: eliminació de diversos registres

Per suprimir diversos registres, podeu especificar una condició que coincideixi amb diverses files. Suprimim les files de la taula  GFG_Employees on el departament és "Desenvolupament". Això suprimirà 2 files (la primera fila i la setena fila).

següent escàner

Consulta:

DELETE FROM GFG_Employees   
WHERE department = 'Development';

Sortida

departament' loading='lazy' title=

Exemple 3: suprimiu tots els registres d'una taula

Si hem d'esborrar tots els registres de la taula podem ometre la clàusula WHERE o, alternativament, utilitzar la instrucció DELETE amb un asterisc (*) per indicar totes les files.

Consulta:

DELETE FROM GFG_Employees;  
Or
DELETE * FROM GFG_Employees;

Sortida:

fmovies Índia
buit' loading='lazy' title=

Tots els registres de la taula s'eliminaran i no hi ha cap registre per mostrar. La taula GFG_Employees  es quedarà buida.

Tornar enrere les operacions DELETE

Com que la instrucció DELETE és una operació DML, es pot revertir quan s'executa en una instrucció. Si suprimiu registres per error o necessiteu repetir el procés, podeu utilitzar el ROLLBACK comandament.

Consulta:

START TRANSACTION;  
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;

Explicació: L'ordre ROLLBACK desfà els canvis fets per la instrucció DELETE restaurant de manera efectiva els registres que es van suprimir durant la transacció.

Crea un qüestionari