La sentencia UPDATE es una sentencia SQL que pertenece al grupo DML(Data Manipulation Language) «Lenguaje de manipulación de datos en español » la cual nos permite actualizar o modificar los registros de una tabla dependiendo de la condición que especifiquemos.
↡ Ejemplos desarrollados al final ↡
Sintaxis:
UPDATE Nombre_tabla SET Nombre_campo = Valor WHERE condición1, condición2,...
DONDE:
- nombre_tabla : Puede ser un alias
Consideraciones a tener en cuenta
- Si no se especifica la cláusula WHERE dentro de la sentencia se actualizará toda la columna de datos.
UPDATE Nombre_tabla SET Nombre_campo = Valor
- Cuando el tipo de dato es diferente al de la columna que se que quiere actualizar, la consulta retornará un mensaje de error.
UPDATE Nombre_tabla SET columna_numeric ="Texto"
- Al infringir una restricción de clave primaria durante la actualización de datos la consulta retornará un mensaje de error.
- Al actualizar tablas con grandes volúmenes de datos el rendimiento de la base de datos puede verse afectado durante la actualización.
- Si se desea actualizar una o más tablas se puede combinar con la sentencia SELECT.
Sentencia UPDATE combinada con sentencia SELECT
Cuando necesitamos actualizar una o más tablas o necesitamos poner varias condiciones, se debe combinar la sentencia UPDATE con la sentencia SELECT. Este es un proceso que debe realizarse con cuidado ya que si la sentencia SELECT está mal creada, como resultado la actualización de datos también estará incorrecta.
Ejemplo:
UPDATE VEN SET VEN.TOTAL = VEN.SUBTOTAL + VEN.IMPUESTO FROM VENTASDETALLE VEN INNER JOIN PRODUCTOS PRO ON (VEN.ProductoID = PRO.ProductoID) WHERE PRO.Precio > 0
CASOS DESARROLLADOS
TABLA VENTAS
ID | Codigo_Cliente | Nombre_Cliente | Fecha_Compra | Subtotal | Descuento | Impuesto | Total |
---|---|---|---|---|---|---|---|
1 | C00001 | Juan Perez | 2020-01-01 | $500 | $40 | $50 | $510 |
6 | C00006 | Carmen Rocio | 2020-01-01 | $550 | $20 | $55 | $585 |
3 | C00003 | Hector Vargas | 2020-01-01 | $300 | $0 | $0 | $300 |
4 | C00004 | Susana Ruiz | 2020-01-01 | $120 | $0 | $0 | $120 |
7 | C00001 | Juan Perez | 2020-01-02 | $800 | $10 | $80 | $870 |
5 | C00005 | Luisa Delgado | 2020-01-02 | $500 | $0 | $50 | $550 |
2 | C00002 | Diego Veloz | 2020-01-02 | $550 | $45 | $55 | $560 |
8 | C00002 | Diego Veloz | 2020-01-03 | $100 | $10 | $10 | $100 |
9 | C00002 | Diego Veloz | 2020-01-03 | $200 | $10 | $0 | $190 |
10 | C00004 | Susana Ruiz | 2020-01-04 | $210 | $10 | $0 | $200 |
Caso desarrollado #1
Actualizar el valor de la columna DESCUENTO = 20 de todos los registros que tengan DESCUENTO=0 y volver a calcular el TOTAL de esos registros, la columna TOTAL deberá ser igual a TOTAL = SUBTOTAL + IMPUESTO – DESCUENTO.
Código SQL »
UPDATE VENTAS SET DESCUENTO = 20, TOTAL=SUBTOTAL+IMPUESTO-DESCUENTO WHERE DESCUENTO=0
Resultado »
ID | Codigo_Cliente | Nombre_Cliente | Fecha_Compra | Subtotal | Descuento | Impuesto | Total |
---|---|---|---|---|---|---|---|
3 | C00003 | Hector Vargas | 2020-01-01 | $300 | $20 | $0 | $300 |
4 | C00004 | Susana Ruiz | 2020-01-01 | $120 | $20 | $0 | $120 |
5 | C00005 | Luisa Delgado | 2020-01-02 | $500 | $20 | $50 | $530 |
Comentarios