Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL: declaración de eliminación
Este tutorial de SQL explica cómo usar SQL eliminar declaración Viene con gramática, ejemplos y ejercicios.
describir
La instrucción SQL DELETE se utiliza para eliminar uno o más registros de una tabla.
sintaxis
La sintaxis de la instrucción DELETE en SQL es:
DELETE FROM table [WHERE conditions];
parámetro o parámetro
tabla La tabla de la que desea eliminar registros. La condición WHERE es opcional. La condición que debe cumplir el registro a borrar. Si no se proporciona ninguna condición, se eliminarán todos los registros de la tabla.
notas
- No necesita enumerar los campos en la declaración DELETE porque está eliminando la fila completa de la tabla.
Ejemplo de DDL/DML
Si desea seguir este tutorial, obtenga DDL para crear las tablas y DML para completar los datos. ¡Entonces pruebe los ejemplos en su propia base de datos!
Ejemplo: instrucción DELETE con una condición
Si la instrucción DELETE se ejecuta sin condiciones en la cláusula WHERE, se eliminarán todos los registros de la tabla. Por lo tanto, normalmente incluye una cláusula WHERE con al menos una condición en su instrucción DELETE.
Comencemos con un ejemplo simple de una consulta DELETE que tiene una condición en la cláusula WHERE.
En este ejemplo, tenemos una tabla llamada proveedores con los siguientes datos:
Identificación del proveedor | Nombre del proveedor | Ciudad | Expresar |
---|---|---|---|
100 | microsoft | Redmond | Washington |
200 | paisaje de la cima de la montaña | California | |
300 | Oráculo | ciudad de secoya | California |
400 | Kimberly Clark | Owen | Texas |
500 | Alimentos Tyson | Springdale | Arkansas |
600 | sc johnson | Racine | el estado de wisconsin |
700 | Alimentos Dole | pueblo del lago oeste | California |
800 | flores comida | thomasville | Georgia |
900 | Artes electrónicas | ciudad de secoya | California |
Ingrese la siguiente instrucción DELETE:
DELETE FROM suppliers WHERE supplier_name="Microsoft";
Se eliminará 1 registro. Seleccione de nuevo los datos de la tabla de proveedores:
SELECT * FROM suppliers;
Estos son los resultados que deberías ver:
Identificación del proveedor | Nombre del proveedor | Ciudad | Expresar |
---|---|---|---|
200 | paisaje de la cima de la montaña | California | |
300 | Oráculo | ciudad de secoya | California |
400 | Kimberly Clark | Owen | Texas |
500 | Alimentos Tyson | Springdale | Arkansas |
600 | sc johnson | Racine | el estado de wisconsin |
700 | Alimentos Dole | pueblo del lago oeste | California |
800 | flores comida | thomasville | Georgia |
900 | Artes electrónicas | ciudad de secoya | California |
Este ejemplo eliminará todos los registros con el nombre de proveedor “Microsoft” de la tabla de proveedores.
Es posible que desee verificar la cantidad de filas que se eliminarán.Puede determinar la cantidad de filas que se eliminarán ejecutando la siguiente instrucción SELECT adelante Ejecutar borrar:
SELECT COUNT(*) FROM suppliers WHERE supplier_name="Microsoft";
Cuando ejecuta una declaración DELETE, esta consulta devuelve la cantidad de registros que se eliminarán.
contando |
---|
1
Ejemplo: instrucción DELETE con múltiples condiciones
Se pueden incluir múltiples condiciones en una declaración SQL DELETE usando una condición AND o una condición OR. Las condiciones Y le permiten eliminar registros cuando se cumplen todas las condiciones. La condición OR eliminará un registro si se cumple cualquiera de las dos condiciones.
Veamos un ejemplo de cómo usar la condición AND para usar la instrucción DELETE con dos condiciones.
En este ejemplo, tenemos una tabla llamada productos con los siguientes datos: | ID del Producto | nombre del producto |
---|---|---|
categoria ID | 1 | pera |
50 | 2 | plátano |
50 | 3 | mandarina |
50 | 4 | manzana |
50 | 5 | pan de molde |
75 | 6 | jamón |
25 | 7 | kleenex |
nulo
DELETE FROM products WHERE category_id = 50 AND product_name <> 'Pear';
Ingrese la siguiente instrucción DELETE:
SELECT * FROM products;
Se eliminarán 3 registros. Seleccione de nuevo los datos de la tabla de productos:
Estos son los resultados que deberías ver: | ID del Producto | nombre del producto |
---|---|---|
categoria ID | 1 | pera |
50 | 5 | pan de molde |
75 | 6 | jamón |
25 | 7 | kleenex |
nulo
Este ejemplo eliminará todos los registros de la tabla de productos donde category_id es 50 y product_name no es Pear. Para verificar la cantidad de filas que se eliminarán, puede ejecutar la siguiente declaración SELECT adelante
SELECT COUNT(*) FROM products WHERE category_id = 50 AND product_name <> 'Pear';
Ejecutar borrar.
Esto devuelve la cantidad de registros que se eliminarán cuando se ejecute la instrucción DELETE. |
---|
contando |
3
Ejemplo: uso de EXISTS con instrucción DELETE
También puede realizar eliminaciones más complejas.
Es posible que desee eliminar registros en una tabla en función de los valores en otra tabla. Dado que no se pueden enumerar varias tablas en la cláusula FROM al realizar una eliminación, se puede usar la cláusula EXISTS. | En este ejemplo, tenemos una tabla llamada clientes con los siguientes datos: | Identificación del cliente | apellido |
---|---|---|---|
nombre | sitio favorito | 4000 | jackson |
José | Red de Ciencia y Tecnología | 5000 | Herrero |
simple | digminecraft.com | 6000 | Ferguson |
samantha | granactividad.com | 7000 | Reynolds |
Alan | revisatumath.com | 8000 | anderson |
Página | nulo | 9000 | Johnson |
Derek
Red de Ciencia y Tecnología | También existe una tabla llamada pedidos con los siguientes datos: | Solicitar ID |
---|---|---|
Identificación del cliente | fecha de orden | 1 |
7000 | 2016/04/18 | 2 |
5000 | 2016/04/18 | 3 |
8000 | 2016/04/19 | 4 |
4000 | 2016/04/20 | 5 |
nulo
DELETE FROM orders WHERE EXISTS (SELECT * FROM customers WHERE customers.customer_id = orders.customer_id AND customers.last_name="Jackson");
2016/05/01
SELECT * FROM orders;
Ingrese la siguiente instrucción DELETE:
Se eliminará 1 registro. Seleccione de nuevo los datos de la tabla de pedidos: | Estos son los resultados que deberías ver: | Solicitar ID |
---|---|---|
Identificación del cliente | fecha de orden | 1 |
7000 | 2016/04/18 | 2 |
5000 | 2016/04/18 | 3 |
8000 | 2016/04/19 | 5 |
nulo
2016/05/01 Este ejemplo eliminará todos los registros de la tabla de pedidos donde hay un registro en la tabla de clientes con un last_name de “Jackson” y un valor de customer_id coincidente en ambas tablas. En este ejemplo, se elimina el registro con order_id=4. Si desea determinar el número de filas para eliminar, puede ejecutar la siguiente instrucción SQL SELECT
SELECT COUNT(*) FROM orders WHERE EXISTS (SELECT * FROM customers WHERE customers.customer_id = orders.customer_id AND customers.last_name="Jackson");
adelante
Ejecutar borrar. |
---|
Esto devuelve la cantidad de registros que se eliminarán cuando se ejecute la instrucción DELETE. |
contando
1
DELETE FROM TableA WHERE NOT EXISTS (SELECT * FROM TableB WHERE TableA.field1 = TableB.fieldx AND TableA.field2 = TableB.fieldz);
Preguntas frecuentes
Pregunta: ¿Cómo puedo escribir una instrucción SQL DELETE para eliminar todos los registros en TableA donde los datos en field1 y field2 no coinciden con los datos en fieldx y fieldz de TableB?
Respuesta: puede probar algo como esto con la instrucción SQL DELETE:
Ejercicios de práctica Si quiere poner a prueba sus habilidades con la instrucción SQL DELETE, pruebe algunos de nuestros ejercicios. Estos ejercicios le permiten probar sus habilidades usando la instrucción DELETE. Recibirá preguntas que necesitan ser resueltas. Después de cada ejercicio, proporcionamos soluciones para que puedas comprobar tus respuestas. ¡Darle una oportunidad!