Este documento explica cómo modificar registros en MySQL, incluyendo cómo actualizar un campo en todos los registros de una tabla, seleccionar y modificar un solo registro usando una cláusula WHERE, y modificar un campo en cualquiera de los registros.
1. Modificar registros
Sintaxis MySQL de
Modificar un campo en todos los registros de una tabla
modificación de registros La sentencia MySQL, que permite modificar uno o varios campos en todos los
registros de una tabla, es la siguiente:
Las sentencias MySQL que
permiten la modificación de UPDATE tabla SET campo1=valor1, campo2=valor2
registros en las tablas pueden
incluir algunas de las siguientes
cláusulas que, al igual que ocurría ¡Cuidado con esta sentencia!. Hay que tener muy presente que con esta sentencia -en
en casos anteriores, pueden tener la que no aparece WHERE- se modificarán TODOS LOS REGISTROS DE LA TABLA y
categoría de obligatorias u por lo tanto los campos modificados tendrán el mismo valor en todos los registros.
opcionales.
El orden en que deben estar Algunas consideraciones sobre la sintaxis
indicadas ha de seguir la misma
secuencia en la que están
descritas aquí. Siempre que manejes PHP y MySQL debes tener muy presente lo siguiente:
UPDATE
s MySQL requiere SIEMPRE que los valores tipo cadena que incluyen campos de
Tiene carácter obligatorio, debe fecha vayan entre comillas. Por el contrario, los numéricos no deben llevar
ser la primera palabra de la comillas.
sentencia e indica a MySQL que s Presta mucha atención a esto cuando escribas los valores directamente en la
vamos realizar una modificación. sentencia MySQL
s Cuando pases valores desde una variable PHP debes tener muy en cuenta las
[LOW_PRIORITY] consideraciones anteriores y si el contenido de la variable es una cadena que va a
Es opcional e indica a MySQL ser tratada como tal por MySQL tienes dos opciones para evitar el error:
espere a que se terminen de
hacer las consultas que en ese r Definir la variable así: $variable ="'valor'" (comillas dobles, comilla
momento pudiera haber en simple al principio y comilla simple, comilla doble al final) y poner en la
proceso antes realizar la sentencia MySQL el nombre de la variable sin entrecomillar, o
actualización. r Definir la variable PHP así: $variable ="valor" y al escribir el nombre de
esa variable en la sentencia MySQL escribirlo entre comillas sencillas, es
[IGNORE] decir, así: '$variable'
Es opcional. Cuando se incluye en
s No pienses que es caprichoso el orden que hemos puesto en las comillas. Recuerda
una sentencia el proceso de
que al llamar a la sentencia MySQL, el contenido de la sentencia va entre
actualización no se interrumpe si
aparece un conflicto de clave comillas (que por costumbre son comillas dobles, por esa razón todo
duplicada en uno de los registros entrecomillado que vaya dentro de esa sentencia ha de usar comillas simples
en proceso. Simplemente ignora para evitar un error seguro).
ese registro y continúa con los
siguientes De ahí que al definir una variable PHP en la forma $variable ="'valor'" las
comillas dobles exteriores indican a PHP que se trata de una cadena, por lo que, al
Si no se incluye, el proceso de pasar la variable a MySQL éste recibirá el contenido de la cadena que es,
modificación se interrumpe en el logicamente: 'valor' y en este caso las comillas forman parte del valor, razón por
momento en que encuentre un el que no es necesario escribir -en la sentencia MySQL- el nombre de la variable
conflicto de clave duplicada.
entrecomillado.
Tanto con ignore como sin esa
cláusula, en el caso de duplicidad En este primer ejemplo, hemos incluido una actualización de tablas que pondrá
de clave NUNCA se efectúan las puntuación 7 en la primera de las pruebas a todos los aspirantes a astronautas de
modificaciones. nuestro ejemplo.
tabla
Es un caso de actualización sin la condición WHERE y tiene el código comentado.
Es obligatoria y contiene el
nombre de la tabla que
Ver código fuente Ejecutar la modificación
pretendemos modificar.
SET Selección y modificación de un solo registro
Tiene carácter obligatorio y debe
estar delante de las definiciones de Es una de las opciones más habituales. Es el caso en el que –mediante un formulario–
campo y valor. asignamos una condición a WHERE y simultáneamente asignamos los nuevos valor del
campo o campos elegidos. Requiere la siguiente sintaxis:
campo1 = valor1
UPDATE tabla SET campo1=valor1, campo2=valor2 WHERE condición
Es obligatoria al menos una
definición. Indica el nombre del La condición es fundamental en esta opción y normalmente aludirá a un campo índice
campo a modificar (campo1) y el (clave principal o única), de modo que sea un solo registro el que cumpla la condición.
valor que se asignará a ese Podría ser el caso, en nuestro ejemplo, del campo DNI que por su unicidad garantizaría
campo.
que la modificación solamente va a afectar a uno solo de los registros.
Si se pretende modificar más de
un campo se repetirá esta El ejemplo siguiente nos permitirá hacer modificaciones de este tipo en la tabla
definición tantas veces como sea deomodat2. Observa el código fuente y verás que mediante un simple recurso
necesario, separando cada una de JavaScript, el script que realiza la modificación nos reenvía al formulario con un mensaje
ellas por una coma. de confirmación de la modificación.
WHERE Ver código «formulario» Ver código del «script» Ejecutar la modificación
Es un campo opcional y su
comportamiento es idéntico a Modificación simúltanea de un campo
señalado al mencionar el proceso
de consultas. en cualquiera de los registros
ORDER BY Aquí tienes un ejemplo que permite visualizar el valor actual de todas las
puntuaciones de la prueba 2 de los astronautas así como sus nombres y apellidos y DNI y
Tiene idéntica funcionalidad a la en la cual se pueden modificar ninguno, uno, varios o todos los valores y
descrita al referirnos a consultas posteriormente actualizarlos todos con los nuevos valores.
Ver código «formulario» Ver código del «script» Ejecutar la modificación
2. Ejercicio nº 43
Crea los formularios y scripts necesarios para poder elegir un alumno cualquiera mediante
su DNI –en la tabla1– y modificar cualquiera de sus datos personales.
Anterior Indice Siguiente