AnteriorPosterior

4 - Borrar información

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

 

SQL y MySQL

4.1. ¿Qué información hay?

Un primer paso antes de ver cómo borrar información es saber qué información tenemos almacenada.

Podemos saber las bases de datos que hay creadas en nuestro sistema con:

SHOW DATABASES;

Una vez que estamos trabajando con una base de datos concreta (con la orden "USE"), podemos saber las tablas que contiene con:

SHOW TABLES;

Y para una tabla concreta, podemos saber los campos (columnas) que la forman con "SHOW COLUMNS FROM":

SHOW COLUMNS FROM personas;

Por ejemplo, esto daría como resultado:

+-----------+--------------+------+-----+---------+-------+  
| Field     | Type         | Null | Key | Default | Extra |  
+-----------+--------------+------+-----+---------+-------+  
| nombre    | varchar(20)  | YES  |     | NULL    |       |  
| direccion | varchar(40)  | YES  |     | NULL    |       |  
| edad      | decimal(3,0) | YES  |     | NULL    |       |  
| codciudad | varchar(3)   | YES  |     | NULL    |       |  
+-----------+--------------+------+-----+---------+-------+

4.2. Borrar toda la base de datos

En alguna ocasión, como ahora que estamos practicando, nos puede interesar borrar toda la base de datos. La orden para conseguirlo es "DROP DATABASE":

DROP DATABASE ejemplo2;

Si esta orden es parte de una secuencia larga de órdenes, que hemos cargado por ejemplo con la orden "source", puede ocurrir que la base de datos no exista. En ese caso, obtendríamos un mensaje de error y se interrumpiría el proceso en ese punto. Podemos evitarlo añadiendo "IF EXISTS", para que se borre la base de datos sólo si realmente existe:

DROP DATABASE ejemplo2 IF EXISTS;

4.3. Borrar una tabla

Es más frecuente que creemos alguna tabla de forma incorrecta. La solución razonable es corregir ese error, cambiando la estructura de la tabla, pero todavía no sabemos hacerlo. De momento veremos cómo borrar una tabla. La orden es "DROP TABLE":

DROP TABLE personas;

Al igual que para las bases de datos, podemos hacer que la tabla se borre sólo cuando realmente existe:

DROP TABLE personas IF EXISTS;

4.4. Borrar datos de una tabla

También podemos borrar los datos que cumplen una cierta condición. La orden es "DELETE FROM", y con la cláusula "WHERE" indicamos las condiciones que se deben cumplir, de forma similar a como hacíamos en la orden "SELECT":

DELETE FROM personas WHERE nombre = 'juan';

Esto borraría todas las personas llamadas "juan" que estén almacenadas en la tabla "personas".

Cuidado: si no se indica el bloque "WHERE", no se borrarían los datos que cumplen una condición (porque NO HAY condición), sino TODOS los datos existentes. Si es eso lo que se pretende, una forma más rápida de conseguirlo es usar "TRUNCATE TABLE":

TRUNCATE TABLE personas;

4.5. Ejercicios propuestos

  • 4.1. Crea una base de datos llamada "ejercicio4". 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.
  • 4.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".
  • 4.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.
  • 4.4. Muestra todos los artículos, ordenados por año, mes y título.
  • 4.5. Muestra todos los artículos de revistas "Byte" que contengan la palabra "PC" en su nombre, ordenados por título.
  • 4.6. Crea una tabla "CopiadeArticulos", con los mismos campos que la tabla Artículos. Usa la orden "INSERT INTO CopiadeArticulos (SELECT * FROM articulos)" para volcar a la nueva tabla todos los datos que existían en la antigua.
  • 4.7. Borra de CopiadeArticulos aquellos artículos que comiencen en páginas por encima de la 120. Muestra los nombres de artículos existentes y su página inicial, ordenados por número de página inicial, para comprobar que el borrado es correcto.
  • 4.8. Borra de CopiadeArticulos aquellos artículos que aparezcan en revistas Byte. Muestra los nombres de artículos existentes y el nombre de la revista a la que pertenecen, ordenados por revista y luego por título de artículo, para comprobar que el borrado es correcto.
  • 4.9. Borra la tabla CopiadeArticulos y comprueba que ya no aparece en el sistema.

405 visitas desde el 17-04-2019

AnteriorPosterior