SQL: declaración de eliminación

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 Google 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 Google 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!