Oracle - Cual es la diferencia entre DELETES?

 
Vista:

Cual es la diferencia entre DELETES?

Publicado por Lorena Rojas (8 intervenciones) el 17/04/2007 06:54:00
Hola, leyendo un poco vi algunos ejemplos de DELETES en ORACLE como sigue:

DELETE FROM po_lines WHERE ship_to_state IN (’TX’,’NY’,’IL’)
DELETE FROM customers WHERE customer_id = ’GOMEZ’;
DELETE line_details WHERE rowid NOT IN (SELECT MAX(rowid) FROM line_detail GROUP BY line_detail_id)
DELETE FROM order_staging;

Y lo que me llamo mucho la atencion es que el tercer delete no lleva la palabra FROM, es opcional esta palabra?

Muchas gracias.

Saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cual es la diferencia entre DELETES?

Publicado por 4fait (16 intervenciones) el 17/04/2007 18:51:11
Buenas tardes:

Te explico lo que hace cada DELETE:

DELETE FROM po_lines WHERE ship_to_state IN (’TX’,’NY’,’IL’)

Borra de la tabla 'po_lines' los registros/líneas que en su campo/atributo 'ship_to_state' tengan alguno de los valores 'TX','NY, ó 'IL'

DELETE FROM customers WHERE customer_id = ’GOMEZ’;

Borra de la tabla 'customers' donde el campo/atributo 'customer_id' tenga el valor 'GOMEZ'.

DELETE line_details WHERE rowid NOT IN (SELECT MAX(rowid) FROM line_detail GROUP BY line_detail_id)

Aqui te borra los registros que el valor de 'rowid' NO salga en la consulta que tienes entre paréntesis

DELETE FROM order_staging;

Borra todos los registros que tenga la tabla 'order_staging'


A condición de lo que te ha "...llamado la atención..." es que es lo mismo en la sintaxis de DELETE poner o no la palabra FROM:

DELETE nombreTabla;

es igual que poner:

DELETE FROM nombreTabla;

Personalmente veo más claro el poner 'FROM' por que aclara más el código al programador que lo está haciendo y el que lo está leyendo.


Bueno Saludos.......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar