Download universidad don bosco facultad de estudios tecnológicos escuela de

Document related concepts

MySQL Workbench wikipedia , lookup

Mecanismos de almacenamiento (MySQL) wikipedia , lookup

MySQL wikipedia , lookup

InnoDB wikipedia , lookup

Transcript
UNIVERSIDAD DON BOSCO
FACULTAD DE ESTUDIOS TECNOLÓGICOS
ESCUELA DE COMPUTACIÓN
CICLO: 01/ 2013
Nombre
de
la Practica:
Lugar
de
Ejecución:
Tiempo
Estimado:
MATERIA:
GUIA DE LABORATORIO # 8
Interactuar con una base de datos utilizando un script SH
Laboratorio de Redes, Edificio 3 del CITT
3 horas
Aplicaciones para Redes
I. OBJETIVOS
Que el estudiante:
• Manipule el gestor de base de datos de Mysql.
• Crear script que permitan mostrar e insertar datos
II. INTRODUCCION TEORICA
Que es mysql?
mysql (algunas veces referido como "monitor mysql") es un programa interactivo que permite
conectarnos a un servidor MySQL, ejecutar algunas consultas, y ver los resultados, en otras
palabras mysql es un gestor de base de datos.
Conectándose y desconectándose al servidor MySQL
Para conectarse al servidor, usualmente necesitamos de un nombre de usuario (login) y de una
contraseña (password), y si el servidor al que nos deseamos conectar está en una máquina
diferente de la nuestra, también necesitamos indicar el nombre o la dirección IP de dicho servidor.
Una vez que conocemos estos tres valores, podemos conectarnos de la siguiente manera:
shell> mysql -h NombreDelServidor -u NombreDeUsuario -p
Cuando ejecutamos este comando, se nos pedirá que proporcionemos también la contraseña para
el
nombre de usuario que estamos usando.
Si la conexión al servidor MySQL se pudo establecer de manera satisfactoria, recibiremos el
mensaje de bienvenida y estaremos en el prompt de mysql:
shell>mysql -h casita -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5563 to server version: 3.23.41
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Este prompt nos indica que mysql está listo para recibir comandos.
Después de que nos hemos conectado de manera satisfactoria, podemos desconectarnos en
cualquier momento al escribir "quit", "exit", o presionar CONTROL+D.
Aplicaciones para Redes
1
Guía # 8: Interactuar con una base de datos utilizando un script SH
III. MATERIALES Y EQUIPO
Para la
No.
1
2
realización de la guía de práctica se requerirá lo siguiente:
Requerimiento
PC de escritorio con Linux
Guía de laboratorio
Cantidad
1
1
IV. PROCEDIMIENTO
1. Crear la base datos:
-Levantar el servicio de mysql: service mysqld start
-Abrir el eprompt de mysql: [root@localhost ~]# mysql -u root
-crear la base de datos: mysql> create database zoologico;
-Seleccionar la bases de datos: mysql> use zoologico;
2. Crear tablas:
• Lo podemos hacer de dos maneras, si ya elegimos la base de datos digitamos las
tablas con sus campos correspondientes, que son las siguientes:
create table especies(
cod_especie varchar(8) primary key,
especie varchar(30)
) ENGINE=InnoDB;
create table mascotas(
cod_mascota varchar(8) primary key,
nombre varchar(30),
propietario varchar(60),
cod_especie varchar(8),
sexo char(1),
nacimiento date,
fallecimiento date,
index(cod_especie),
Foreign key(cod_especie)references especies(cod_especie)
) ENGINE=InnoDB;
•
El paso anterior lo podemos realizar de la siguiente manera, ya que al digitar en el
prompt de mysql si da algún error, hay que digitar de nuevo todo, podemos
solucionar este problema creando las tablas en un archivo externo al cual le
llamaremos “sql” y lo guardaremos en el Escritorio de el usuario root.
ejemplo:
mysql -u root zoologico < /root/Escritorio/sql
La tabla debe tener una estructura muy similar a la siguiente
Aplicaciones para Redes
2
Guía # 8: Interactuar con una base de datos utilizando un script SH
3. Crear el script llamado “ingresarespecies.sh” y agregare el siguiente código.
#!/bin/bash
var=$(Xdialog --stdout --2inputsbox "Ingresar los datos" 0 0 "Ingrese el codigo de la
especie" "" "Ingresar el nombre de la especie" "" )
cod_especie=$( echo $var | awk -F/ '{ print $1 }')
especie=$( echo $var | awk -F/ '{ print $2 }')
mysql -u root -prafael zoologico <<INICIO
insert into especies values("$cod_especie","$especie");
INICIO
Xdialog --infobox "Especie ingresada correctamente" 0 0 5000
Ejecutar el Script y ver el resultado.
4. Crear el script “ingresarmascotas.sh” y agregar el siguiente código.
#!/bin/bash
Xdialog --title "Titulo" --yesno "Quiere Ingresar una nueva mascota" 0 0
case $? in
0)
#se verifica si hay especies en la base
cant=$(mysql -u root -prafael zoologico <<-INICIO
select count(*) from especies;
INICIO
)
#se captura el valor
cant=$(echo $cant | awk '{print $2}')
#si no hay especie se termina el proceso
if [ $cant -eq 0 ]
then
Xdialog --infobox "No existen especies en la base, no se pueden ingresar
mascotas" 0 0 5000
#si hay especies continuamos con el proceso
else
#se captura el codigo de la mascota
codigo=$(Xdialog --stdout --inputbox "Ingrese el codigo de la mascota" 0 0 )
#ingresamos el nombre de la mascota y el propietario
var=$(Xdialog --stdout --2inputsbox "Ingresar los datos" 0 0 "Ingrese el nombre de la
mascota" "" "Ingrese el nombre del propietario" "" )
#se captura los datos de las mascotas
mascota=$( echo $var | awk -F/ '{ print $1 }')
propietario=$( echo $var | awk -F/ '{ print $2 }')
#se consultan las epecies para el combo
mysql -u root -prafael zoologico <<-INICIO >tmp
Aplicaciones para Redes
3
Guía # 8: Interactuar con una base de datos utilizando un script SH
select especie from especies;
INICIO
#se toman todos los valores menos el nombre del campo
var=$( cat tmp | awk 'NR>1' )
#creamos el combo
especies=$(Xdialog --stdout --combobox "Escoja su Mascota" 0 0 $var )
sexo=$(Xdialog --stdout --combobox "Elija el sexo de la Mascota" 0 0 "F" "M" )
nacimiento=$(Xdialog --stdout --calendar "Escoja la fecha de nacimiento" 0 0
19 02 1986 )
fallecimiento=$(Xdialog --stdout --calendar "Escoja la fecha de fallecimiento" 0
0 19 02 1986)
#utilizada para tomar el codigo de la especie ya que no se inserta el nombre
sino el codigo
cod_especie=$(mysql -u root -prafael zoologico <<-INICIO
select cod_especie from especies where especie="$especies"
INICIO
)
#se quita el nombre del campo
cod_especie=$(echo $cod_especie | awk '{print $2}')
#creamos una estrutura valida para las fechas
nacimiento=$( echo $nacimiento | awk -F/ '{print $3"-"$2"-"$1}' )
fallecimiento=$(echo $fallecimiento | awk -F/ '{print $3"-"$2"-"$1}' )
#realizamos toda la insercion
mysql -u root -prafael zoologico <<INICIO
insert
into
mascotas
values("$codigo","$mascota","$propietario","$cod_especie","$sexo","$nacimiento","$fallecimiento
")
INICIO
Xdialog --infobox "Mascota ingresada correctamente" 0 0 5000
fi
;;
1)echo 1;;
255)echo 255;;
esac
5. Como ultimo punto crearemos un script llamado “creabase.sh” y que permitirá
crear una base de datos, validando que no exista otra con el mismo nombre.
echo -n "Ingrese el nombre de la base de datos a crear: "
read base
mysql -prafael <<INICIO | grep $base > /dev/null
show databases ;
INICIO
if [ $? -eq 0 ]
then
clear
Aplicaciones para Redes
4
Guía # 8: Interactuar con una base de datos utilizando un script SH
echo "Ya existe una base de datos con ese nombre"
else
mysql -prafael <<INICIO
create database $base;
INICIO
fi
V. DISCUSION DE RESULTADOS
Crear un script que me permita realizar las siguientes opciones.
1. Me permita eliminar una base de datos siempre y cuando esta se encuentre vaciá, para ello
debe de pedir el nombre de la base de datos.
2. Ver todas las base de datos.
3. Ver todas las tablas de una base de datos.
4. Eliminar una tabla siempre y cuando se encuentre vaciá.
5. Tomando de referencia el punto 5, crear un script que primero muestre en un combobox las
bases de datos y luego verifique si esta se encuentra vacía, en caso que no contenga tablas
deberá eliminarla, sino es así mostrara un infobox de 5 segundos que muestre el error.
Tomar en cuenta que para estos script debe utilizar Xialog
VII. BIBLIOGRAFIA
 Linux. Manual de Administración, Steve Shah, McGraw-Hill 2001
 Linux. Guía de instalación y administración, Vicente López Camacho, McGraw-Hill, 2001
Aplicaciones para Redes
5