AnteriorPosterior

5 - Modificar información

Por: Nacho Cabanes
Actualizado: 17-04-2019 10:51
Tiempo de lectura estimado: 7 min.

 

SQL y MySQL

5.1 Modificación de datos

Ya sabemos borrar datos, pero existe una operación más frecuente que esa (aunque también ligeramente más complicada): modificar los datos existentes. Con lo que sabíamos hasta ahora, podíamos conseguir modificar información: si un dato es incorrecto, podríamos borrarlo y volver a introducirlo, pero esto, obviamente, no es lo más razonable... debería existir alguna orden para cambiar los datos. Efectivamente, la hay. El formato habitual para modificar datos de una tabla es "UPDATE tabla SET campo=nuevoValor WHERE condicion".

Por ejemplo, si hemos escrito "Alberto" en minúsculas ("alberto"), lo podríamos corregir con:

UPDATE personas SET nombre \= 'Alberto' WHERE nombre \= 'alberto';

Y si queremos corregir todas las edades para sumarles un año se haría con

UPDATE personas SET edad \= edad+1;

(al igual que habíamos visto para "select" y para "delete", si no indicamos la parte del "where", como en este último ejemplo, los cambios se aplicarán a todos los registros de la tabla).

5.2. Ejercicios propuestos sobre modificación de datos

(Los tres primeros ejercicios son idénticos -salvo por el nombre de la base de datos- a los del apartado anterior, así que puedes volver a hacerlos o bien ampliar la estructura que habías creado en el apartado 4).

  • 5.1. Crea una base de datos llamada "ejercicio5". En ella guardaremos información de artículos de revistas. De cada revista almacenaremos el nombre, el mes y el año, junto con un código de no más de 8 letras. Para cada artículo anotaremos un código, el título, la revista en la que aparece, la página inicial y la página final (se trata de una relación 1:M, ya que cada revista puede contener varios artículos y cada artículo sólo aparecerá en una revista). Diseña el diagrama Entidad-Relación y crea las tablas.
  • 5.2. Añade la revista "Byte 9", del mes 10 de 1984, con código "BY009". Añade también la revista "PcWorld España 195", del mes 2 de 2003, con código "PCWE195".
  • 5.3. Incluye también los artículos:

  • "The IBM PC AT", con código "AT", en la revista Byte 9, de la página 108 a la 111.
  • "Database Types", con código "DbTypes", en la revista Byte 9, de la página 138 a la 142.
  • "12 Distribuciones Linux", con código "DistLinux", en la revista PCWE195 , de la página 96 a la 109.

  • 5.4. Muestra todos los datos: nombre de revista, mes, año, nombre de artículo, página inicial. Deben aparecer ordenados por nombre de artículo.
  • 5.5. Corrige el artículo "Database Types" ("DbTypes"): no comienza en la página 138 sino en la 137.
  • 5.6. Cambia el nombre del artículo "12 Distribuciones Linux" para que pase a ser "12 Distribuciones GNU/Linux".

5.3. Modificar la estructura de una tabla

Modificar la estructura de una tabla es algo más complicado: añadir campos, eliminarlos, cambiar su nombre o el tipo de datos. En general, para todo ello se usará la orden "ALTER TABLE". Vamos a ver las posibilidades más habituales.

Para añadir un campo usaríamos "ADD":

ALTER TABLE ciudades ADD habitantes decimal(7);

Si no se indica otra cosa, el nuevo campo se añade al final de la tabla. Si queremos que sea el primer campo, lo indicaríamos añadiendo "first" al final de la orden. También podemos hacer que se añada después de un cierto campo, con "AFTER nombreCampo".

Podemos modificar el tipo de datos de un campo con "MODIFY". Por ejemplo, podríamos hacer que el campo "habitantes" no fuera un "decimal" sino un entero largo ("bigint") con:

ALTER TABLE ciudades MODIFY habitantes bigint;

Si queremos cambiar el nombre de un campo, debemos usar "CHANGE" (se debe indicar el nombre antiguo, el nombre nuevo y el tipo de datos). Por ejemplo, podríamos cambiar el nombre "habitantes" por "numhabitantes":

ALTER TABLE ciudades CHANGE habitantes numhabitantes bigint;

Si queremos borrar algún campo, usaremos "drop column":

ALTER TABLE ciudades DROP COLUMN numhabitantes;

Muchas de estas órdenes se pueden encadenar, separadas por comas. Por ejemplo, podríamos borrar dos campos con "alter table ciudades drop column num habitantes, drop column provincia;"

También podríamos cambiar el nombre de una tabla con "RENAME":

ALTER TABLE ciudades RENAME ciudad;

Y si hemos olvidado indicar la clave primaria en una tabla, también podemos usar ALTER TABLE para detallarla a posteriori:

ALTER TABLE ciudades ADD PRIMARY KEY(codigo);

5.4. Ejercicios propuestos sobre modificación de estructura de tablas

  • 5.7. En la base de datos llamada "ejercicio5" (o en "ejercicio4", si estás partiendo de la base de datos anterior), amplía la tabla Revista añadiendo al final de todos los campos un campo adicional de tipo texto: el país el el que se edita (por ejemplo, "España" o "Estados Unidos").
  • 5.8. En la tabla de Artículos, añade el campo Autor (texto), antes del número de página inicial.

3018 visitas desde el 17-04-2019

AnteriorPosterior