DELETE

La sentencia DELETE suprime una o más filas de una tabla.

Invocación

Esta sentencia puede utilizarse en un programa de aplicación utilizando las funciones de CLI de DB2 o emitirse a través del CLP.

Sintaxis

>>-DELETE FROM--nombre-tabla--+-------------------------------+-><
                              '-WHERE--| condición-búsqueda |-'
 
condición-búsqueda:
 
   .------------------------------------------------.
   V                                                |
|----+--------------------------------------------+-+-----------|
     '-+-AND-+--+-----+--+-| predicado |--------+-'
       '-OR--'  '-NOT-'  '-(condición-búsqueda)-'
 
predicado:
 
|--+-| predicado básico |-+-------------------------------------|
   +-| predicado IN |-----+
   +-| predicado LIKE |---+
   '-| predicado NULL |---'
 
predicado básico:
 
|--| expresión |--+-=--+--| expresión |-------------------------|
                  +-<>-+
                  +-<--+
                  +->--+
                  +-<=-+
                  +->=-+
                  '-||-'
 
predicado IN:
 
                               .-,-------------------.
                               V                     |
|--| expresión |--+-----+--IN----(--| expresión |--)-+----------|
                  '-NOT-'
 
predicado LIKE:
 
|--| expresión |--+-----+--LIKE--| expresión |------------------|
                  '-NOT-'
 
predicado NULL:
 
                 (1)
|--| expresión |-------IS--+-----+--NULL------------------------|
                           '-NOT-'
 
expresión:
 
   .-operador---------------------.
   V                              |
|----+---+--+-literal-----------+-+-----------------------------|
     +-+-+  +-nombre-columna----+
     '---'  +-(expresión)-------+
            +-registro-especial-+
            '-función-----------'
 
operador:
 
|--+-/-+--------------------------------------------------------|
   +-*-+
   +-+-+
   '---'
 
 

Notas:

  1. Las expresiones BLOB sólo se permiten en predicados NULL.

Descripción

FROM nombre-tabla
Designa la tabla en la que deben suprimirse filas. El nombre debe especificar una tabla existente en el catálogo, pero no una tabla de catálogo.
WHERE
Especifica una condición que selecciona las filas que deben suprimirse. Se puede omitir la cláusula o especificar una condición de búsqueda. Si se omite la cláusula, se suprimen todas las filas de la tabla.
condición-búsqueda
La condición de búsqueda especifica una condición que es verdadera, falsa o desconocida para una fila determinada.

El resultado de una condición de búsqueda se obtiene aplicando los operadores lógicos especificados (AND, OR, NOT) al resultado de cada predicado especificado. Un predicado compara dos valores. Si no se especifican operadores lógicos, el resultado de la condición de búsqueda es el resultado del predicado especificado.

Las condiciones de búsqueda que están entre paréntesis se evalúan en primer lugar. Si no se especifica un orden de evaluación mediante el uso de paréntesis, NOT se aplica antes que AND y AND se aplica antes que OR. El orden en el que se evalúan los operadores con igual nivel de prioridad es indefinido, para permitir la optimización de las condiciones de búsqueda.

La condición de búsqueda se aplica cada fila de la tabla y las filas suprimidas son aquéllas para las cuales el resultado de la condición de búsqueda es verdadero.

Cada nombre de columna especificado en la condición de búsqueda debe identificar una columna de la tabla.

NOT
Si se especifica NOT, se invierte el resultado del predicado.
expresión
Identifica un operando del predicado. La expresión puede ser un literal, nombre de columna, registro especial o función.

No se da soporte a las operaciones aritméticas sobre los tipos de datos BLOB(n), DATE, TIME y TIMESTAMP.

literal
Un literal puede ser un valor cuyo tipo de datos es INTEGER, SMALLINT, DECIMAL, CHAR(n), VARCHAR(n), BLOB(n), DATE, TIME o TIMESTAMP.
nombre-columna
Identifica la columna que es un operando del predicado.
registro-especial
Identifica el registro especial que es un operando del predicado. Se pueden utilizar los registros especiales CURRENT DATE, CURRENT TIME y CURRENT TIMESTAMP para generar la fecha, la hora o la indicación de hora actuales.
función
Puede incluir sólo las funciones MOD, LENGTH y RTRIM.
operador relacional
Puede ser cualquiera de los operadores siguientes:

=
Igual a.

<>
No igual a.

<
Menor que.

>
Mayor que.

<=
Menor o igual que.

>=
Mayor o igual que.

LIKE
Coincide con una serie de caracteres. Utilice un símbolo de subrayado de SBCS (juego de caracteres de un solo byte) para representar un carácter SBCS individual. Utilice un símbolo de subrayado de DBCS (juego de caracteres de doble byte) para representar un carácter DBCS individual. Por ejemplo, la condición WHERE PART_NUMBER LIKE '_0' obtiene todos los números de pieza de 2 dígitos que terminan en 0 (20, 30 y 40, por ejemplo). Utilice un símbolo de porcentaje (del juego de caracteres SBCS o DBCS) para representar una cadena de caracteres SBCS o DBCS, o la ausencia de caracteres. Por ejemplo, la condición WHERE DEPT_NUMBER LIKE '2%' obtiene todos los números de departamento (DEPT_NUMBER) que comienzan con el número 2 (por ejemplo, 20, 27 ó 234).

NOT LIKE
Indica que al menos uno de los caracteres es diferente.

IS NULL
Contiene el valor nulo.

IS NOT NULL
No contiene el valor nulo.
AND
Si se especifica, el operador lógico AND se aplica al resultado de cada predicado especificado.
OR
Si se especifica, el operador lógico OR se aplica al resultado de cada predicado especificado.

Reglas

Ninguna.

Notas

Ejemplo

Supresión del número de empleado (EMPNO) 003002 de la tabla EMPLOYEE:

     DELETE FROM EMPLOYEE
       WHERE EMPNO = '003002'

Consulta relacionada