Documente Academic
Documente Profesional
Documente Cultură
Instalación de MySQL
Deberá descargar el archivo mysql-5.0.16-win32.zip (última versión a la fecha)
de la dirección http://dev.mysql.com/ Una vez que ya lo tenga, debe
descomprimirlo en una carpeta temporal y entonces verá , que es el
archivo de instalación, proceda a dar doble clic sobre el y guíese de las
siguientes imágenes para la instalación:
133
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
134
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
135
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
136
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
137
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
138
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
139
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Trabajando en Consola
Ejecutar la consola (Command Prompt) de interprete de comandos e ingresar a
la carpeta bin de MySQL (Program Files\MySQL\MySQL Server 5.0\bin\) en
esa ruta activará el programa mysql.exe de la siguiente forma:
mysql –u root –p
Ver imagen:
mysql>quit
140
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Instalación de PostgreSQL
Deberá descargar el archivo postgresql-8.1.0-2.zip (última versión a la fecha)
de la dirección http://www.postgresql.org/ Una vez que ya lo tenga, debe
descomprimirlo en una carpeta temporal y entonces verá , que
es el archivo de instalación, proceda a dar doble clic sobre el y guíese de las
siguientes imágenes para la instalación:
141
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
142
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
143
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Se recomienda, por los ejemplos que siguen, poner como password: admin, en
el siguiente diálogo:
144
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
145
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
146
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
147
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Trabajando en Consola
Ejecutar la consola (Command Prompt) de interprete de comandos e ingresar a
la carpeta bin de MySQL (Program Files\PostgreSQL\8.1\bin\) en esa ruta
activará el programa psql.exe de la siguiente forma: psql –U postgres
Siga probando las siguientes sentencias para crear la base de datos prueba y
conectarse a ella (postgres=# \connect prueba):
148
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
postgres=# \q
149
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Instalación de DBManager
En la dirección http://www.dbtools.com.br/EN/downloads/ encontrará diversas
versiones de DBManager para descargar:
150
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
151
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
152
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
153
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
154
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
155
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
156
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
157
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
159
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
La columna idAlumno:
La columna nombre:
De la misma forma desarrolle la tabla notas (idAlumno solo tiene los atributos
que ve):
160
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
161
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
En el diálogo Table Properties clic en el botón New para hacer una nueva
relación. En el área Primary Key seleccione la tabla alumnos, en PK Column
seleccione idAlumno y también en FK Column seleccione idAlumno. Por
último, para cambios en cascada sobre la tabla notas, en On Update seleccione
CASCADE y On Delete seleccione CASCADE. Finalmente clic en Aceptar:
162
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Ingresaremos filas de datos, entonces dar clic derecho sobre la tabla alumnos y
seleccionar la opción Get Data:
163
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
164
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
ON alumnos.idAlumno=notas.idAlumno
GROUP By nombre
ORDER BY 2 DESC
SELECT nombre
FROM alumnos
WHERE idAlumno IN
(SELECT idAlumno
FROM notas
WHERE nota=12 AND idAlumno IN
(SELECT idAlumno
FROM notas
WHERE nota=11))
ORDER BY nombre
167
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
# GO
# Dumping Table Structure for alumnos
#
CREATE TABLE `alumnos` (
`idAlumno` int(11) NOT NULL auto_increment,
`nombre` varchar(50) default NULL,
PRIMARY KEY (`idAlumno`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
# GO
#
# GO
COMMIT;
# GO
# Dumping Table Structure for notas
#
CREATE TABLE `notas` (
`idAlumno` int(11) NOT NULL,
`nota` smallint(6) NOT NULL,
KEY `IXFK_notas` (`idAlumno`),
CONSTRAINT `FK_notas_1` FOREIGN KEY (`idAlumno`) REFERENCES `alumnos`
(`idAlumno`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
# GO
#
# GO
169
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
170
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
171
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
En el diálogo JDK Profile clic en el botón Add y escoja Add Archive, busque el
driver en la ruta indicada anteriormente, finalmente dicho driver se parte del la
lista de Classes:
172
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public MiPanel() {
setLayout(new BorderLayout());
b.addActionListener(this);
add(b, BorderLayout.NORTH);
add(new JScrollPane(t), BorderLayout.CENTER);
}
DatabaseMetaData meta=cn.getMetaData();
t.setText("Conexión exitosa\n");
t.append("\nDatabase:\t" +
meta.getDatabaseProductName());
t.append("\nversion:\t" +
meta.getDatabaseProductVersion());
cn.close();
173
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
} catch(SQLException ex) {
t.setText( "SQLException: " + ex.getMessage() +
"\n" + "SQLState: " + ex.getSQLState() +
"\n" + "VendorError: " + ex.getErrorCode());
} catch(Exception ex) {
System.out.println("Exception: " + ex.getMessage() +
"\n\t" + ex.getLocalizedMessage());
}
}
}
174
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Aplicación dosTablasMySQL
Un simple programa demostrativo que muestra como trabajar con 2 tablas
relacionadas en MySQL. En este caso se desarrolla una aplicación para la base
datos alumnos que fue creada con DBManager en este capítulo.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import balta.ventanas.*;
175
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
public MiPanel() {
setLayout(new BorderLayout());
query.addActionListener(this);
add(query, BorderLayout.NORTH);
add(new JScrollPane(jt), BorderLayout.CENTER);
p.add(insAlumno);
insAlumno.addActionListener(this);
p.add(insNota);
insNota.addActionListener(this);
add(p, BorderLayout.SOUTH);
}
if(e.getSource() == insAlumno)
new Formulario2("Nuevo Alumno",
new PanInsAlumno(), 300,160);
if(e.getSource() == insNota)
new Formulario2("Nueva Nota",
new PanInsNota(), 300,240);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import balta.db.*;
import balta.ventanas.*;
public PanInsAlumno() {
setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
setLayout(new GridLayout(2,1,1,10));
nombre.setBorder(
BorderFactory.createTitledBorder("Alumno"));
176
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
nombre.setOpaque(false);
add(nombre);
add(acepta);
acepta.addActionListener(this);
}
// cierra el formulario
((Formulario2) getTopLevelAncestor()).dispose();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Vector;
import balta.db.*;
import balta.ventanas.*;
public PanInsNota() {
setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
setLayout(new GridLayout(3,1,1,10));
alumno.setBorder(
BorderFactory.createTitledBorder("Alumno"));
nota.setBorder(BorderFactory.createTitledBorder("Nota"));
nota.setSelectedIndex(14);
add(alumno);
add(nota);
add(acepta);
177
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
acepta.addActionListener(this);
}
// obteniendo idAlumno
Vector id= MiSQL.consulta(
"Select idAlumno From alumnos Where nombre like '" +
a + "'");
if(id!=null) {
i= ((String[]) id.elementAt(1))[0];
// Insertando nota
String m= MiSQL.ejecuta(
"Insert into Notas Values(" +
i + "," + n + ")");
if(m!=null)
JOptionPane.showMessageDialog(null,
"Error:" + m);
}
// cierra el formulario
((Formulario2) getTopLevelAncestor()).dispose();
}
}
178
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
Aplicación dosTablasPosgreSQL
Si desea hacer lo mismo con el gestor de base de datos PostgreSQL, recuerde
que tiene que tener la base datos alumnos en él, entonces tendrá que crear un
DSN (Data Source Name), como lo hizo el capítulo con SQL Server y Access, el
DSN deberá llamarse dsnPostgreSQL, ver el programa que está en el CD
(dosTablasPosgreSQL)
URL:
jdbc:odbc:dsnX
User:
postgres
Pasword:
admin
SQL:
Select nombre as Alumno, avg(nota) as Promedio from alumnos inner join notas
On alumnos.idAlumno=Notas.idAlumno Group By nombre
179
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
180
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
URL:
jdbc:mysql://localhost/alumnos
User:
root
Pasword:
admin
SQL:
Select nombre as Alumno, avg(nota) as Promedio from alumnos inner join notas
On alumnos.idAlumno=Notas.idAlumno Group By nombre
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
public MiPanel() {
setLayout(new GridLayout(2,1));
181
CAPÍTULO 16: MYSQL, POSGRESQL Y DBMANAGER
add(p);
add(new JScrollPane(resultado));
}
try {
Class.forName(driver.getText());
cn.close();
} catch(SQLException ex) {
while(ex!=null) {
resultado.append("Error de SQL: " +
ex.getMessage() + "\n");
ex= ex.getNextException();
}
} catch(Exception ex) {
resultado.setText("Error: " + ex.toString());
}
}
resultado.append("\n");
}
}
}
182