Beruflich Dokumente
Kultur Dokumente
PROGRAMACIÓN IV
LABORATORIO #9
TEMA
Mysql
FACILITADOR
DIEGO SANTIMATEO
ELABORADO POR
CALLES YORISBETH 9-720-2373
GONZÁLEZ ROMAN 9-705-1420
II AÑO
II SEMESTRE
ÍNDICE
CUESTIONARIO............................................................................................................................1
1. Describa qué es una base de datos y un motor (manejador) de base de datos:............................1
2. Describa una tabla y sus componentes. Haga ejemplos de varios registros. Indique cómo están
constituidos los registros..................................................................................................................2
3. ¿Qué es SQL? ¿Qué es MYSQL?................................................................................................3
4. Estructura de los comandos SQL en Mysql ................................................................................4
5. ¿Cuáles son los tipos de los campos y qué significa llave primaria o key?.................................8
6. Prueba de los comandos mencionados........................................................................................9
7. Elabore un programa OO que lea el archivo de texto de las calificaciones de los estudiantes del
CRUV y cree una tabla de profesores, otra de estudiantes y otra de asignatura. ..........................14
7.1 Programa fuente...................................................................................................................14
7.2 Ejecución del programa ......................................................................................................24
8. Consultar a partir de la cédula, las calificaciones identificadas con asignatura y docente ......27
9. Compare la solución del punto #8 usando Base de datos vs. Archivos.....................................29
2
CUESTIONARIO
posterior uso.
datos.
1
2. Describa una tabla y sus componentes. Haga ejemplos de varios
en tablas.
Una tabla es una estructura de datos que organiza los datos en columnas y
solo valor.
Cada campo (columna) debe tener un nombre. El nombre del campo hace
Cada campo (columna) también debe definir el tipo de dato que almacenará.
Tabla usuarios
Tenemos una tabla que la podemos llamar usuarios, que contiene tres
2
almacenados en esa tabla, el primero almacena en el campo nombre el valor
Cuando se crea una tabla debemos indicar su nombre y definir sus campos
con su tipo de dato. Por ejemplo en el campo Nombre se debe definir que
MySQL, Oracle, etc. SQL es el lenguaje estándar utilizado para manejar las
bases de datos.
3
4. Estructura de los comandos SQL en Mysql
Como hemos dicho anteriormente, que al crear una tabla debemos resolver
qué campos (columnas) tendrá y que tipo de datos almacenarán cada uno de
ellos.
Ejemplo: CREATE TABLE nombre _ tabla (campo1 tipo (longitud), campo2 tipo
Ejemplo:
INSERT INTO es, obviamente, la sentencia SQL que inserta los valores en
una tabla.
4
Para llevar a cabo un proceso selectivo debemos utilizar la sentencia SQL
El comando select recupera los registros de una tabla detallando los nombres
de los campos separados por comas, indicamos que seleccione todos los
Existe una cláusula, where que es opcional, con ella podemos especificar
registros, solo los que cumplan con ciertas condiciones indicadas con la
Para actualizar:
5
Este cambio afectara a todos los registros.
“where”
registro es afectado.
Para eliminar:
Ejemplo:
borre completamente.
6
Utilidad de la cláusula WHERE:
7
5. ¿Cuáles son los tipos de los campos y qué significa llave primaria
o key?
tabla UNO)
de 0 a 255.
4294967295.
DOUBLE PRECISION
8
DECIMAL: Guarda un número de coma flotante sin empaquetar. Esto de sin
empaquetar implica que se guarda como una cadena (véase CHAR), usando
DATE: Almacena un valor de fecha, los rangos permitidos son desde ‘1000-01-
Estos son algunos de los tipos de datos que puede tener una tabla.
Una llave primaria o key es un campo clave que se asigna a la tabla, esta
9
Y la sentencia de código, utilizada para esta prueba fue:
solicitando un
estudiante especifico,
especifico fue
“Oradys”
10
La sentencia de código utilizada es:
tabla:
guiente:
11
Para eliminamos un registro dentro de la tabla se utiliza la sentencia
fue el de Oradys.
Se observa que
el registro ya no
edad=’29’.
12
La sentencia de código utilizada fue la siguiente
programa.
13
7. Elabore un programa OO que lea el archivo de texto de las califi-
principal
import java.io.*;
import javax.swing.*;
while (op!=4)
{
System.out.println(" \n MENU " + "\n");
System.out.println("1.CREAR TABLAS");
System.out.println("2.INSERTAR DATOS EN LAS TABLAS");
System.out.println("3.CONSULTA DE UN ESTUDIANTE");
System.out.println("4.SALIR" + "\n" + "\n");
14
}
}
}
captura imprime
// clase que permite ingresar datos y despliega resultados
import javax.swing.*;
import java.text.*;
import java.lang.String.*;
import java.io.*;
import java.util.*;
class Capturaimp {
private String msnj;
public Capturaimp(){
}
// metodo para capturar datos
public String devmsn1(String mens)throws IOException
{
//flujos que permiten la captura por tevlado
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.print(mens);
msnj=br.readLine();
return (msnj);
}
//metodo para desplegar resultados
public void imprimir(String mensj){
System.out.println(mensj);
}
15
Crear tabla
/* esta clase se conecta a la base de datos y permite crear las tablas
para profesor, estudiantes y asignaturas */
import java.sql.*;
class Creartablas{
public Creartablas(){
}
public void tablas ()// método para crear tablas
{
Connection conn = null;
try
{
String userName = "FIEC-02";
String password = "";
// se indica el servidor, puerto y la base de datos facultad de mysql
String url = "jdbc:mysql://serfiec:3306/facultad";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (url, userName, password);
System.out.println ("Coneccion Database OKKK!!!");
try
{
Statement s = conn.createStatement ();
/* creación de las tablas mediante la sentencia CREATE TABLA
s.executeUpdate("CREATE TABLE educa ( nombre VARCHAR(70),
codigo VARCHAR(10),asignatura VARCHAR(70))");
s.executeUpdate("CREATE TABLE materias ( nombre
VARCHAR(70), codigoasig VARCHAR(8), codigohor VARCHAR(8))");
s.executeUpdate("CREATE TABLE student (cedula
VARCHAR(20),codigoasig VARCHAR(8),codigo VARCHAR(70),nota
VARCHAR(2))");
s.close ();
System.err.println ("TABLAS CREADAS CORRECTAMENTE");
}
catch (Exception e)
{
System.err.println ("Problemas con acceso a la tabla"+e);
}
}
catch (Exception e)
{
System.err.println ("No puede conectarse al Servidor Mysql");
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("\n !!!!!Cerrada la coneccion a Mysql");
}
catch (Exception e) { /* sin mensajes de error */ }
}
}
} }
16
Copiar archivo
/* clase que extrae los datos necesarios de un archivo de texto, los imprime
en pantalla y luego pasa estos datos a las tablas correspondientes, para
simplificar, los datos que se extraen corresponden a la facultad de ciencias
agropecuarias */
import java.io.*;
import javax.swing.*;
import java.text.*;
import java.lang.String.*;
import java.sql.*;
class Copiararchivo {
private String archivoName;
try {
String userName = "FIEC-02";
String password = "";
17
//se separa la línea dentro de un vector para extraer los datos necesarios
String[] dats0=s.split (" ");
for(int k=7;k<dats.length;k++)
nombreprof +=dats[k] + " ";//concatenamos nombre
String cedu="";
String calf="";
for(int x=2;x<6;x++)//concatena la cedula
cedu +=datsest[x] + " ";
18
st.executeUpdate("INSERT INTO student
(cedula, codigoasig , codigo, nota )" +
"VALUES ('"+cedu+"', '"+codasig+"',
'"+codigprof+"', '"+calf+"' )");
}
catch(Exception e)
{
}
}//while
st.close ();
catch ( IOException e )
{
respuesta +="El archivo no se pudo cerrar correctamente";
}
catch (Exception e)
{
respuesta +="El archivo no se pudo cerrar correctamente" + "\n" + e;
}
return(respuesta);
} //fin método
} // fin de Copiararchivo
19
consulta de un estudiante por cedula
/*esta clase recibe una cedula y procede a buscarla en la tabla de estudian-
tes. Contiene dos métodos, uno para la búsqueda de la cedula y el otro para
la búsqueda de la materia y el profesor */
import java.sql.*;
class PruebaRemotaMysql {
private String userName = "FIEC-02";
private String password = "";
// se indica el servidor, puerto y la base de datos facultad de mysql
private String url = "jdbc:mysql://serfiec:3306/facultad";
public PruebaRemotaMysql(){
}
try
{
int count = 0;
System.out.println ("Datos de la Tabla \n");
String result=consulta2(codigasigVal,codigprofVal);
20
/*aplicamos un split para separar el nombre del professor y el de la
asignatura*/
String[] datoss=result.split("''");
++count;
}
rs.close ();
s.close ();
System.out.println ("\n Registros recuperados...."+ count);
}
catch (Exception e)
{
System.err.println ("Problemas con acceso a la tabla"+e);
}
}
catch (Exception e)
{
System.err.println ("No puede conectarse al Servidor Mysql");
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("\n !!!!!Cerrada la coneccion a Mysql");
}
catch (Exception e) {
}
}
}
}
21
//método que busca el nombre de la material y del profesor
public String consulta2 (String codas,String codprf)
{
Connection conn = null;
String nombrematVal=new String();
String nombreporfVal=new String();
String retorn=new String();
try
{
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
conn = DriverManager.getConnection (url, userName, password);
try
{
//Uso de la tabla estu de la base de datos facultad
Statement s = conn.createStatement ();
Statement z = conn.createStatement ();
22
try
{
conn.close ();
}
catch (Exception e) {
}
}
}
retorn =nombrematVal + "''" + nombreporfVal;
return(retorn);//retorna datos concatenados
}
23
7.2 Ejecución del programa
misma
educa
nombre código asignatura
materias
nombre codigoasig codigohor
student
24
cedula codigoasig codigo nota
25
en la pantalla que presentamos escogemos la opción dos la cual
es utilizada para insertar datos dentro de las tablas dichos da-
tos son extraídos de un archivos
26
8. Consultar a partir de la cédula, las calificaciones identificadas
con asignatura y docente
27
En esta pantalla podemos observar que la cedula introducida no
se encuentra en la base de datos por lo cual nos manda un mensa-
je de la cantidad de archivos recuperados el cual es cero por no
estar en la base de datos.
28
9. Compare la solución del punto #8 usando Base de datos vs. Archi-
vos.
Comparando una búsqueda utilizando base de datos y archivos, resulta mas ventajoso y mas
eficiente consultar mediante base de datos, ya que cuenta con una sentencia (WHERE) que
reduce la búsqueda, buscando datos de un registro en especial, también se reduce códigos,
porque con el uso de archivos se tiene que escribir muchas condiciones para encontrar un
registro. Otro punto es que con base de datos se cuenta con información seleccionada, es decir
contamos con tablas que contiene solamente los datos que corresponden a esas tablas.
29