Вы находитесь на странице: 1из 24

UNIVERSIDAD DE PANAMÁ

CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS


FACULTAD INFORMÁTICA, ELECTRÓNICA Y COMUNICACIÓN
LIC. EN INFORMÁTICA PARA LA GESTIÓN EDUCATIVA Y EMPRESARIAL

PROGRAMACIÓN IV inf222

LABORATORIO #9

“Mysql”

INTEGRANTES

FÁTIMA GONZÁLEZ 9-721-2074


ANNETH MANZANÉ 9-719-2292
HERNÁN FRANCO 9-721-2310

FACILITADOR

DIEGO SANTIMATEO

II SEMESTRE

FECHA DE ENTREGA

12/12/2007
MYSQL

INDICE

LIC. EN INFORMÁTICA PARA LA GESTIÓN EDUCATIVA Y EMPRESARIAL........1


PROGRAMACIÓN IV inf222................................................................................1
INTEGRANTES..................................................................................................................1
FACILITADOR...................................................................................................................1
DIEGO SANTIMATEO.......................................................................................................1
CUESTIONARIO............................................................................................................................3
1. Describa qué es una base de datos y un motor (manejador) de base de datos.............................3
2. Describa una tabla y sus componentes. Haga ejemplos de varios registros. Indique cómo están
constituidos los registros..................................................................................................................3
3. ¿Qué es SQL? ¿Qué es MYSQL?................................................................................................4
4. Identifique la estructura de los comandos SQL en Mysql para insertar, eliminar, actualizar y
consultar registros de una tabla, así como para crear una tabla. ..............................................4
Comandos........................................................................................................................4
COMANDOS DLL......................................................................................................................5
COMANDO.....................................................................................................................................5
DESCRIPCIÓN...................................................................................................................5
COMANDOS DML.....................................................................................................................5
5. ¿Cuáles son los tipos de los campos y qué significa llave primaria o key?.................................6
6. Resultados de la Ejecución de los Comandos SQL.....................................................................7
"SELECT nombre,apellido,edad FROM estu"............................................................7
Tabla no actualizada Tabla actualizada...........................................8
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. ..........................10
} // fin de BaseDato......................................................................................................................15
8. Diseñe una clase que permita consultar a partir de la cédula, las calificaciones identificadas
con asignatura y docente................................................................................................................16
9. Compare la solución del punto #8 usando Base de Datos vs. Archivos....................................24

Elaborado por: Hernán-Fátima-Anneth 2


MYSQL

CUESTIONARIO

1. Describa qué es una base de datos y un motor (manejador) de base de datos.

Una base de datos es una colección de información organizada de forma que un


programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que
necesite. Una base de datos es un sistema de archivos electrónico.
Las bases de datos tradicionales se organizan por campos, registros y archivos. Un
campo es una pieza única de información; un registro es un sistema completo de
campos; y un archivo es una colección de registros.

El sistema manejador de bases de datos es la porción más importante del


software de un sistema de base de datos. Un DBMS es una colección de numerosas
rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna
tarea específica.
En sí, un sistema manejador de base de datos es el corazón de la base de datos ya
que se encarga del control total de los posibles aspectos que la puedan afectar.

2. Describa una tabla y sus componentes. Haga ejemplos de varios registros.


Indique cómo están constituidos los registros.
La tabla que mostramos a continuación esta estructurada dentro de ella con varios
registros, estos están constituidos de la siguiente manera:
 Columna 1 fila 1= Nombre
 Columna 2 fila 1= Apellido
 Columna 3 fila 1= Cédula
 Columna 4 fila 1= Sexo
 Columna 5 fila 1= Edad
 Columna 6 fila 1= Dirección

Elaborado por: Hernán-Fátima-Anneth 3


MYSQL

NOMBRE APELLIDO CEDULA SEXO EDAD DIRECCION


Nombre_1 Apellido_1 Cedula_1 Sexo_1 Edad_1 Direccion_1
Nombre_2 Apellido_2 Cedula_2 Sexo_2 Edad_2 Direccion_2
Nombre_n Apellido_n Cedula_n Sexo_n Edad_n Direccion_n

En la tabla, las n filas dependen de la cantidad de personas que ingresan a la Base de


Datos, en cambio los registros pueden ser varios estos van a depender de los datos de
las personas que se consideren relevantes para el manejador de la Base de Datos.

Las columnas representan la información genérica de la tabla, que es en donde se


guardará la información específica, es decir, en las filas. De esta manera, las tablas
mantienen comunicación entre columnas, para extraer la información específica de las
filas.

3. ¿Qué es SQL? ¿Qué es MYSQL?


¿Qué es SQL?
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos
normalizado y estándar, utilizado por los diferentes motores de bases de datos para
realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos.

¿Qué es MYSQL?
MySQL es un software creado por MySQL AB y es un software multiusuario, multihilos
y un servidor SQL (Structured Query Language).

4. Identifique la estructura de los comandos SQL en Mysql para insertar, eliminar,


actualizar y consultar registros de una tabla, así como para crear una tabla.
Comandos
Existen dos tipos de comandos SQL:
 DLL que permiten crear y definir nuevas bases de datos, campos e índices.
 DML que permiten generar consultas para ordenar, filtrar y extraer datos de la
base de datos.

Elaborado por: Hernán-Fátima-Anneth 4


MYSQL

COMANDOS DLL
COMANDO DESCRIPCIÓN
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
Utilizado para modificar las tablas agregando campos o cambiando
ALTER
la definición de los campos.
COMANDOS DML
COMANDO DESCRIPCIÓN
Utilizado para consultar registros de la base de datos que satisfagan
SELECT
un criterio determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una única
INTO operación.
Utilizado para modificar los valores de los campos y registros
UPDATE
especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos

¿Cuál es la utilidad de la cláusula WHERE?


Utilizada para especificar las condiciones que deben reunir los registros que se van a
seleccionar.

Elaborado por: Hernán-Fátima-Anneth 5


MYSQL

5. ¿Cuáles son los tipos de los campos y qué significa llave primaria o key?
Tipos de los campos

 CHAR/CHAR(): Las columnas de tipo char o char() almacenan un


carácter o una cadena de caracteres de 0 hasta 255 respectivamente.
 VARCHAR: Estas columnas almacenan una cadena de caracteres
variables de 0 a 255.
 TINYINT(): Almacena un valor entero pequeño de 0 a 255 o de -128 a
127.
 BOOLEAN: Todos estos tipos son sinónimos de TINYINT(1).
 FLOAT/FLOAT(): Guarda un número de coma flotante.
 DOUBLE: Contiene un número de coma flotante de precisión normal.

 REAL : Son sinónimos de DOUBLE.

Definición de la clave primaria


Una palabra sobre diferenciación. Es necesario asegurarnos de que las entradas en
una base de datos puedan ser diferenciadas de otras.
La forma de lograr esto, es a través de lo que suele llamarse una LLAVE
PRIMARIA. Lo que una de estas llaves primarias es, es simplemente una distinción
(usualmente un número) que nos ayude a distinguir el contenido de una fila de otra,
incluso si el contenido de una columna es idéntico a otro.
Podemos crear una llave primaria en el momento de crear la tabla o incluso crearla
luego por medio de la sentencia ALTER.

Elaborado por: Hernán-Fátima-Anneth 6


MYSQL

6. Resultados de la Ejecución de los Comandos SQL.


En esta pantalla se muestra los datos que contiene la tabla estu, para seleccionar los
datos de la tabla se utilizo el comando SELECT: cuya sintaxis básica es la siguiente:
"SELECT nombre,apellido,edad FROM estu"

En esta pantalla se muestra un dato de la tabla, mediante el comando SELECT y las


condiciones FROM Y WHERE en donde se seleccionan campos específicos de la tabla
y se especifica un solo dato, en donde se omiten todos los demás, cuya sintaxis básica
es la siguiente:
"SELECT nombre,apellido,edad FROM estu WHERE nombre='Oradys.'"

Elaborado por: Hernán-Fátima-Anneth 7


MYSQL

Para MySQL las actualizaciones se llevan a cabo mediante la sentencia UPDATE.


En las siguientes pantallas se visualiza las actualizaciones que se le hicieron a la tabla
estu, esto se llevo a cabo con el siguiente código:

s.executeUpdate ("UPDATE estu set edad='23',apellido='Gonzalez',nombre='Fatima'


WHERE nombre='Maritza'");

Tabla no actualizada Tabla actualizada

Para realizar una limpieza a la tabla se utiliza el comando DELETE, mediante el


siguiente sintaxis:

s.executeUpdate("DELETE FROM estu WHERE nombre='Zulyeka'");

La siguiente pantalla muestra lo explicado, en donde se eliminó el dato que esta


encerrado en un rectángulo.

Elaborado por: Hernán-Fátima-Anneth 8


MYSQL

La inserción en MySQL (basados en el lenguaje SQL, claro está) se hace por medio de
la sentencia INSERT INTO , cuya sintaxis básica es la siguiente:

s.executeUpdate("INSERT INTO estu (nombre,apellido,edad) VALUES


('Anneth','Manzane','23')");

Dato
insertado
en la tabla

Creación de una tabla estu1 con cuatro campos: id, nombre, apellidos y teléfono ,
cuya sintaxis básica es la siguiente:

s.executeUpdate("CREATE TABLE estu1 (id INT AUTO_INCREMENT, PRIMARY


KEY(id), nombre VARCHAR(20), apellidos VARCHAR(20), telefono VARCHAR(20))");

Elaborado por: Hernán-Fátima-Anneth 9


MYSQL

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.
// CLASE EN DONDE SE CREAN LAS TABLAS CON SUS RESPECTIVOS CAMPOS

import java.sql.*;
public class CrearTabla
{
public void crear ()
{
Connection conn = null;
try
{
String userName = "FIEC-01";
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


s.executeUpdate("CREATE TABLE Asignatu1 (Cod VARCHAR(8), Abrev VARCHAR(7), NomAsig
VARCHAR(50))");
s.executeUpdate("CREATE TABLE Professor1 (Codi VARCHAR(8),NomProf VARCHAR(35))");

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

s.executeUpdate("CREATE TABLE Estudy1 (Ced VARCHAR(16),Nota VARCHAR(2),CodAsig


VARCHAR(8),Codprof VARCHAR(8))");
s.close ();
System.out.println ("-- Creada 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 */ }
}
}
}
}

Elaborado por: Hernán-Fátima-Anneth 11


MYSQL

//CLASE QUE SE ENCARGA DE INTRODUCIR LOS DATOS A LAS TABLAS

import java.io.*;
import javax.swing.*;
import java.lang.String.*;
import java.sql.*;

public class BaseDato {

public void TablaDatos (){

String datresul=" ";


String result=" ";
String esca=" ";

Connection conn = null;

try {
String userName = "FIEC-01";
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!!!");

FileReader archi = new FileReader("faty.txt");


BufferedReader arch = new BufferedReader(archi);

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

String linea=new String();


String cod=new String();
String nomasig=new String();
String codprof=new String();
String nomprof=new String();

Statement s = conn.createStatement ();

//Lectura del archivo línea por línea


while((linea=arch.readLine())!= null){

//Identificar datos de las asignaturas


if (linea.indexOf("ASIGNATURA")!=-1){
nomasig=" ";
cod=" ";
String[] id = linea.split(" "); //Aplicación del split

for(int j=8;j<id.length;j++)
nomasig+=id[j]+" ";
System.out.println(nomasig+"\n");
cod=id[4];
System.out.println(cod);

//Insertar datos a la tabla Asignatura


s.executeUpdate("INSERT INTO Asignatu1 (Cod,NomAsig)" + "VALUES ('"+cod+"','"+nomasig+"')");
}
//Identificar datos de los profesores
if (linea.indexOf("PROFESOR")!=-1){
nomprof=" ";
codprof=" ";

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

String[] id = linea.split(" ");


for(int j=7;j<id.length;j++)
nomprof+=id[j]+" ";
System.out.println(nomprof+"\n");
codprof=id[6];
System.out.println(codprof);

//Insertar datos a la tabla Profesor


s.executeUpdate("INSERT INTO Professor1 (Codi,NomProf)" + "VALUES ('"+codprof+"','"+nomprof+"')");
}

String ced="[ ]+";


String []datced=linea.split(ced);

//Manda una excepción cuando la línea no es numérica


try{
Integer.parseInt(datced[1]);
String cedu="";
String calif="";
for (int j=2;j<6;j++)
cedu+=datced[j]+" ";
calif=datced[6];

//Insertar datos a la tabla Estudiante


s.executeUpdate("INSERT INTO Estudy1 ( Ced,Nota,CodAsig,Codprof)" + "VALUES
('"+cedu+"','"+calif+"','"+cod+"','"+codprof+"')");
}
catch (Exception e)
{ }

} //fin while

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

s.close ();
System.out.println("Dato insertado correctamente");
try
{
arch.close();
}

catch ( IOException e )
{
datresul="El archivo no se pudo cerrar correctamente"+e;
}

}
catch (Exception e)
{
System.out.println("***Error al leer o abrir el archivo...\n" +e);
}

} //fin método
} // fin de BaseDato

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

8. Diseñe una clase que permita consultar a partir de la cédula, las calificaciones identificadas con asignatura y
docente.

/* ESTA CLASE SE ENCARGA DE INGRESAR LA CÉDULA DEL ESTUDIANTE A CONSULTAR */


import javax.swing.*;
import java.text.*;
import java.lang.String.*;

class Captura {

// --** MÉTODO PARA INGRESAR LA CÉDULA DEL ESTUDIANTE **--

public String getCedula(){


String cedu1= JOptionPane.showInputDialog(null, "Ingrese Cédula ");
return (cedu1);
}
}

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

/* CLASE QUE PERMITE CONSULTAR A PARTIR DE UNA CÉDULA LAS NOTAS DE UN ESTUDIANTE IDENTIFICADAS CON
ASIGNATURA Y DOCENTE*/

import java.io.*;
import javax.swing.*;
import java.lang.String.*;
import java.sql.*;

class Consulta {

//()()()()()()()()()()()()()()()()()()()())()()()()()()()()()()())()()()()()()()()()()())()()()()()()

/* Recibe como parámetro la cédula a consultar, el mismo hace el llamado al método consulced2 que lleva
como parámetro el código de asignatura y profesor */

public void consulced (String cedu)


{
Connection conn = null;

try {
String userName = "FIEC-01";
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!!!");

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

try
{
//Uso de la tabla Estudy1 de la base de datos facultad
Statement s = conn.createStatement ();
s.executeQuery ("SELECT Ced,Nota,CodAsig,Codprof FROM Estudy1 WHERE Ced='"+cedu+"'");

ResultSet rs = s.getResultSet ();


int count = 0;

while (rs.next ())


{
String codigoVal = rs.getString ("Ced");
String nombreVal = rs.getString ("Nota");
String apeVal = rs.getString ("CodAsig");
String apeVal1 = rs.getString ("Codprof");

//Llamado al método consulced2


String codprfasg=consulced2(apeVal,apeVal1);
String[] cd=codprfasg.split("tt");
String asigantVal=cd[0];
String profVal=cd[1];

System.out.println ("\n Nota = " + nombreVal


+ "\n Asignatura = " + asigantVal
+ "\n Profesor= " + profVal);
++count;
}
rs.close ();
s.close ();
}

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

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 */ }
}
}
}

Elaborado por: Hernán-Fátima-Anneth 1


MYSQL

//()()()())()()()()()()()()()()())()()()()()()()()()()())()()()()()()()()()()())()()()()()())()()()()()()

public String consulced2 (String codasi,String codpro)


{
Connection conn = null;
String devuelv=new String();
String nomatVal=new String();
String nomprofVal=new String();

try {
String userName = "FIEC-01";
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);
try
{
Statement s = conn.createStatement ();
Statement t = conn.createStatement ();

/*Mediante el comando SELECT y las condiciones FROM WHERE se busca el nombre de la asignatura
y del profesor en sus respectivas tablas*/

s.executeQuery ("SELECT NomAsig FROM Asignatu1 WHERE Cod='"+codasi+"'");


t.executeQuery ("SELECT NomProf FROM Professor1 WHERE Codi='"+codpro+"'");

ResultSet rs = s.getResultSet ();


ResultSet rt = t.getResultSet ();
int count = 0;

Elaborado por: Hernán-Fátima-Anneth 2


MYSQL

//Ciclo en donde se obtiene el nombre de la asignatura


while (rs.next ())
{
nomatVal=rs.getString ("NomAsig");
}

rs.close ();
s.close ();
//Ciclo en donde se obtiene el nombre del profesor
while (rt.next ())
{
nomprofVal=rt.getString ("NomProf");
}
rt.close ();
t.close ();
}
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)
{

Elaborado por: Hernán-Fátima-Anneth 2


MYSQL

try
{
conn.close ();
}
catch (Exception e) { /* sin mensajes de error */ }
}
}
devuelv=nomatVal + "tt" + nomprofVal;
return(devuelv);
}
}

Elaborado por: Hernán-Fátima-Anneth 2


MYSQL

//ESTA CLASE SE ENCARGA DE CREAR LOS OBJETOS Y REALIZAR EL LLAMADO A LOS MÉTODOS DE LAS CLASES

import java.io.*;
import javax.swing.*;
import java.lang.String.*;

class Principal {
public static void main(String args[]) throws Exception {
CrearTabla tabla=new CrearTabla();
tabla.crear();
BaseDato base=new BaseDato();
base.TablaDatos();
Consulta cedu=new Consulta();
Captura cons =new Captura();
String cedu1= cons.getCedula();
cedu.consulced(cedu1);
}
}

Elaborado por: Hernán-Fátima-Anneth 2


MYSQL

9. Compare la solución del punto #8 usando Base de Datos vs. Archivos.

BASE DE DATOS ARCHIVOS


La base de datos esta pensada para Un archivo secuencial no esta pensado
manejar grandes cantidades de para manejar miles de registros.
información.
Implementa la Integridad Referencial En el archivo el programador debe hacer la
(mantener las reglas que se establecen integridad referencial por sus propios
entre las tablas). medios.
Nos permite la relación entre tablas. En un archivo no se crean relaciones.
Consideramos que con las bases de datos, En un archivo se recorre línea por línea, lo
avanzamos más rápido porque vamos cual es más tedioso, para obtener la
directo al campo de la información que información que se requiere.
queremos obtener.

Elaborado por: Hernán-Fátima-Anneth 2

Вам также может понравиться