REEMPLAZAR DATOS

Imaginemos por un momento que el precio de los productos ha subido un 10%, y que tenemos que actualizar nuestra tabla de productos con el nuevo importe. La solución más primitiva sería acceder a la tabla y, el precio de cada prodcuto multiplicarlo por 1.1 y reemplazarlo a mano. Con diez productos, la inversión de tiempo podría llegar al cuarto de hora, y no estaremos exentos de fallos al tipear el importe o al realizar el cálculo en la calculadora. Si la tabla de productos superase la cantidad de 100 productos (algo muy probable y fácil de cumplir), la cosa ya no es una pequeña molestia y un poco de tiempo perdido.

 

El lenguaje SQL nos permite solucionar este problema en cuestión de pocos segundos, ya que posee una sentencia llamada Update, que se ocupa de los cálculos y reemplazos. Su sintaxis es la siguiente:

 

UPDATE lista_tablas SET campo=nuevo_valor [,campo=nuevo_valor] [WHERE...]

 

donde lista_tablas representa el nombre de las tablas donde se realizarán las sustituciones o reemplazos. El parámetro campo indica el campo que se va a modificar, y el parámetro nuevo_valor respresenta una expresión (constante, valor directo, un cálculo, etc.) cuyo resultado o valor será el nuevo valor del campo.

 

En el problema expuesto anteriormente escribiríamos la siguiente sentencia:

 

UPDATE productos SET pvc=pvc*1.1;

 

Si este incremento de precio de costo debe afectar al precio de venta al público un 30% de beneficio, podríamos escribir la siguiente línea para ahorrar trabajo y tiempo:

 

UPDATE productos SET pvc=pvc*1.1, pvp=pvp*1.3;

 

La sentencia UPDATE es muy versátil y potente, por lo que podemos realizar reemplazos condicionantes, ya que permite la cláusula WHERE. De ello se deduce que - por ejemplo -, si se desea bajar un 10% el importe del seguro a aquellos asegurados que cumplan más de dos años de carnet de conducir, y que tengan más de 22 años de edad, tendríamos que escribir la siguiente sentencia:

 

UPDATE asegurados SET importe=importe/1.1 WHERE edad>22 AND

YEAR(Now)-YEAR(expedicion)>2;

 

 

Pero ahí no queda la cosa, porque es posible utilizar varias tablas y sustituir el valor de un campo de una de las tablas con el valor del campo de otra tabla, o bien reemplazar el valor de unos campos de alguna tabla si el valor de los campos de otras tablas cumple una serie de requisitos. Estos casos no son tan frecuentes, pero en el caso de haberlos se agradecerá un buen planteamiento en el diseño inicial de la base de datos.