Problema:
Quiere eliminar una fila o filas de una tabla.
Ejemplo 1:
En el exam
tabla, hay nombres de los estudiantes y los resultados del examen.
nombre | resultado |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Quiere eliminar la fila de Ellen Thornton.
Solución 1:
DELETE FROM exam WHERE name = 'Ellen Thornton';
La tabla exam
ahora se ve así:
nombre | resultado |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Discusión:
Usa DELETE FROM
con el nombre de la tabla de la que desea eliminar una fila. En WHERE
, escribe la condición especificando la fila. Si tiene una fila específica en mente, es mejor escribir la condición usando la columna que contiene valores únicos. Aquí, la columna única es name
.
Si hay muchas filas cuyo nombre es igual a 'Ellen Thornton
', todos ellos serán eliminados. Si no existe tal nombre, no se eliminan filas.
Ejemplo 2:
En el exam
En la tabla se encuentran los nombres de los alumnos y los resultados del examen, tal como en el ejemplo anterior.
nombre | resultado |
---|---|
Janet Morgen | 9 |
Taya Bain | 11 |
Anne Johnson | 11 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Desea eliminar todas las filas para las que el result
es mayor que 10
.
Solución 2:
DELETE FROM exam WHERE result > 10;
El exam
la tabla ahora se ve así:
nombre | resultado |
---|---|
Janet Morgen | 9 |
Josh Kaur | 10 |
Ellen Thornton | 8 |
Discusión:
A veces, no sabe las filas exactas que necesita eliminar o incluso cuántas filas necesita eliminar. Puede escribir la condición por la cual se deben eliminar las filas. Puede haber muchas filas que cumplan la condición, puede ser solo una fila o ninguna fila.
Por supuesto, puede escribir varias condiciones en WHERE
, uniéndolos con AND
o OR
, por ejemplo:
DELETE FROM exam WHERE result > 10 AND name LIKE 'J%';