Anuncios

Bienvenidos sean a este post, hoy veremos como se actualiza la informacion.

Anuncios

Pero a que nos referimos con actualizar informacion? es la posibilidad de poder modificar los datos que existen en nuestra tabla sin necesidad de tener que borrarlos y volverlos a crear, pasemos a ver su sintaxis:

UPDATE [LOW PRIORITY] [IGNORE] tabla(s)
    SET col={expresion | DEFAULT}, col=...
    [WHERE condicion]
    [ORDER BY expresion]
    [LIMIT filas]
Anuncios
Anuncios

Las primeras dos opciones que tenemos son para establecer el nivel de prioridad a la hora de escribir en la tabla (LOW PRIORITY) nos permite informar que esta actualizacion no es tan importante y que priorice otras, la segunda es opcion es para que ante un error lo transforme en un aviso y no detenga la ejecucion del comando, tal como vimos en INSERT en este post, despues podemos pasar una tabla o varias tablas pero esta afectara a las proximas opciones pero de eso hablaremos luego, luego tenemos un SET seguido de todas las columnas que deseamos actualizar, por ultimo tenemos un condicional WHERE donde estableceremos el criterio para realizar la modificacion de lo contrario lo hara en la tabla o tablas informadas, por ultimo las dos opciones que tenemos se aplican unicamente a cuando trabajamos con una sola tabla y esta nos permite seleccionar en que orden se hara la actualizacion (ORDER BY) y LIMIT establece cuantas filas se actualizaran, veamos una sintaxis basica:

UPDATE tabla SET col1='valor', col2=valor;
Anuncios

En este caso actualizaremos todos los valores de la tabla en las dos columnas informadas, esto es lo menos recomendable salvo que sean valores mal ingresados en toda una tabla, por lo general nos manejaremos mas de la siguiente forma:

MariaDB [base1]> update tabla3
    -> set ciudad='Arkham'
    -> where correo='tinchicus@gmail.com';
Anuncios

En este caso pasaremos la tabla seguido del campo que deseamos modificar y por ultimo una condicion donde pasamos el parametro que debe buscar para modificar ese campo, por lo tanto modificara unicamente las columnas donde correo sea igual a ese valor, veamos el resultado final:

+----+----------+----------+----------------------+------+--------------+
| id | nombre   | apellido | correo               | edad | ciudad       |
+----+----------+----------+----------------------+------+--------------+
|  1 | Martin   | Miranda  | tinchicus@gmail.com  |   45 | Arkham       |
|  2 | Enzo     | Tortore  | elgary@tinchicus.com |   33 | Cordoba      |
|  3 | DarkZero | Aleman   | dark@tinchicus.com   |   32 | Miskatonic   |
|  4 | Ariel    | Polizzi  | polizzia@tinchicus.c |   47 | San Fernando |
+----+----------+----------+----------------------+------+--------------+
Anuncios

Vamos a tomar los valores de esta tabla y la vamos a modificar de la siguiente manera:

MariaDB [base1]> update tabla3
    -> set ciudad = 'Dunwich'
    -> where edad < 40;
Anuncios

En este ejemplo le decimos que modifique la ciudad de todos las columnas donde edad sea menor a 40, por lo tanto si lo ejecutamos y vemos las modificaciones obtendremos lo siguiente:

+----+----------+----------+----------------------+------+--------------+
| id | nombre   | apellido | correo               | edad | ciudad       |
+----+----------+----------+----------------------+------+--------------+
|  1 | Martin   | Miranda  | tinchicus@gmail.com  |   45 | Arkham       |
|  2 | Enzo     | Tortore  | elgary@tinchicus.com |   33 | Dunwich      |
|  3 | DarkZero | Aleman   | dark@tinchicus.com   |   32 | Dunwich      |
|  4 | Ariel    | Polizzi  | polizzia@tinchicus.c |   47 | San Fernando |
+----+----------+----------+----------------------+------+--------------+
Anuncios

Observen como se cambio unicamente a las dos filas que cumplieron con el criterio de la condicion, el resto no sufrieron modificaciones, por ultimo vamos a ver un ejemplo donde aplicamos el modificador IGNORE:

MariaDB [base1]> update ignore tabla3
    -> set correo='eltinchicus@gmail.com.ar'
    -> where id=1;
Anuncios

En este comando solamente agregamos el ignore para que ignore cualquier error, por ejemplo aqui el correo devolvera un error porque no encajaria en el campo, pero al ejecutarlo veremos la siguiente salida:

MariaDB [base1]> update ignore tabla3
    -> set correo='eltinchicus@gmail.com.ar'
    -> where id=1;
Query OK, 1 row affected, 1 warning (0.014 sec)
Rows matched: 1  Changed: 1  Warnings: 1
Anuncios

En la salida podemos ver como se realizo correctamente pero en lugar de notificar un error nos devolvio el aviso (warning) donde quedo almacenado el mismo pero no se interrumpio recuerden que esto es ideal para cuando necesitamos ejecutarlo mediante un script y no queremos que se detenga bajo ninguna circunstancia.

Anuncios

En resumen, hoy hemos visto como actualizar nuestros valores en una tabla, como se compone, para que nos sirve, como lo podemos utilizar de una forma general pero tambien mencionamos las distintas opciones que disponemos, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50