El documento describe tres tablas (PIEZA, SUMINISTRA y PROVEEDOR) y ejercicios para realizar en MySQL sobre estas tablas. También explica cómo usar el comando mysqldump para realizar copias de seguridad de bases de datos en MySQL.
1. Bases de Datos Sección 403
Ejercicios en Mysql
PIEZA
(Pk) CódigoP int
NombrePieza Varchar(25)
SUMINISTRA
(Pk) CódigoPieza int
(PK) IdProveedor int
Precio Decimal(6,2)
Nota: La llave primaria de la relación suministra está formada por los atributos CódigoPieza,
IdProveedor (CódigoPieza es llave foránea haciendo referencia a la tabla PIEZA, así como
IdProveedor es llave foránea y hace referencia a la tabla Proveedor)
PROVEEDOR
(Pk) IdProveedor int
NombreP Varchar(25)
Realizar los siguientes incisos en Mysql
a) Obtener los Nombres de todas las piezas
b) Obtener el precio promedio al que se suministran las piezas
c) Obtener los nombres o nombre del proveedor que suministra(n) la pieza 3. (Utilizar
consultas anidadas (IN))
d) Aumentar los precios de las piezas suministradas en 5 unidades
e) Obtener el número de piezas que suministra el proveedor 3
1
2. Bases de Datos Sección 403
Ejercicios en Mysql
Mysqldump (forma para hacerlo desde línea de comandos)
Este es un comando para hacer la copias de seguridad de una o varias bases de datos, esto permite
que los backups se puedan restaurar en distintos tipos de gestores de bases de datos. Esto es posible
porque crea archivos que contienen todas las sentencias sql para crear y llenar con datos las tablas.
Tiene una variedad de opciones que da la posibilidad de crear una copia acorde a diversas
necesidades.
Para tablas con almacenamiento InnoDB se utiliza este programa utilitario, el cual viene en
mySQL y se usa como se muestra a continuación .
1. Primero se abre una ventana de comandos de Windows (menuInicio => Ejecutar
=>cmd).
2. Ya abierta dicha ventana situarse en la carpeta de bin de mySQL
Una manera rápida de hacerlo es:
cd "c:Program FilesMySQLMySQL Server 6.0bin"
Recuerden que cd son las siglas de changedirectory
O se puede ir paso a paso a través del comando cd
3. A continuación se ejecuta el programa mysqldump con una desusopciones :
a) mysqldump -ppassword -u root nombreBD>respaldo.sql
Es importante poner el password sin separación de la -p, pero sí hay que poner un
espacio entre -u y el nombre de usuario (root en este caso).
nombreBD es el nombre de la base de datos de la que se desea hacer un backup.
respaldo.sql es el nombre del fichero donde se quiere guardar el volcado de los
datos.
Verificar que base de datos se quiere respaldar, suponer que se tiene la base de datos
ejemplo
Ejecutar desde bin el comando:
Mysqldump –p -u root ejemplo >respaldo.sql
Verificar que en la carpeta de bin, se encuentra el archivo respaldo.sql
Si se desea mandar a un path específico se ejecuta el comando de la siguiente
forma:
2
3. Bases de Datos Sección 403
Ejercicios en Mysql
Mysqldump –p -u root ejemplo >f:basesdedatosrespaldo.sql
De esta forma el respaldo quedará guardado en f, en la carpeta de basesdedatos
Ahora para probar la restauración de la base de datos, vamos a eliminarla.
Desde el monitor de mysql, eliminar la base de datos ejemplo:
Dropdatabase ejemplo;
Restaurar la Base de Datos
Si la base de datos no existe ejecutar este comando desde el directorio /bin donde se
instaló MySQL:
Mysqladmin -u usuario -ppassword CREATE nombreBD
En nuestro ejemplo sería:
mysqladmin –u root –p CREATE ejemplo(recordar que no se tiene definido un
passwword)
O crear la base de datos desde el monitor de mysql
Una vez creada la base de datos, se debe ejecutar el siguiente comando, también
desde el directorio /bin de MySQL:
mysql -u usuario –ppasswordnombreBD<nombrearchivo.sql
En nuestro ejemplo se ejecuta:
mysql –u root–p ejemplo<respaldo.sql
Cuando les pida el password dar ENTER, o simplemente no escribir –p .
Si se desea realizar un backup de todas las bases de datos:
mysqldump -u root -p --all-databases >fichero.sql
Y si solo quisiéramos hacer backup de un par de bases de datos:
mysqldump -u root -p --databases base_datos1 base_datos2 >fichero.sql
Para hacer backup de una sola tabla, dentro de una base de datos:
3
4. Bases de Datos Sección 403
Ejercicios en Mysql
mysqldump -u root -p base_datos tabla >fichero.sql
***Investigar y probar otras opciones de mysqldump**
4