Base de Datos

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 57

BASE DE DATOS

MY_SQL

es un sistema de gestión de base de datos relacional


o SGBD. Este gestor de base de datos en multihilo y
multiusuario, lo que le permite ser utilizado por varias
personas al mismo tiempo, e incluso, realizar varias
consultas a la vez, lo que lo hace sumamente versátil.
XAMPP es un servidor independiente de plataforma de
código libre. Te permite instalar de forma sencilla Apache
en tu propio ordenador, sin importar tu sistema operativo
(Linux, Windows, MAC o Solaris). Y lo mejor de todo es
que su uso es gratuito.

XAMPP incluye además servidores de bases de datos


como MySQL ySQLite con sus respectivos gestores
phpMyAdmin y phpSQLiteAdmin. Incorpora también el
intérprete de PHP, el intérprete de Perl, servidores de FTP
como ProFTPD ó FileZilla FTP Serve
DATOS SOPORTADOS POR MY SQL
DATOS NUMERICOS ENTEROS CON
SIGNO
DATOS NUMERICOS ENTEROS SIN SIGNO

Esto es posible si
Elegimos en la columna
Atributos el valor de
UNSIGNED y este
campo ya no podrá
contener valores
negativos
DATOS NUMERICOS ENTEROS SIN SIGNO

NOTA: es importante que, en el momento


de definir un campo en la columna
"Longitud" escribamos un número coherente
con la capacidad de almacenamiento
que acabamos de elegir.
Por ejemplo, en un TINYINT para la edad,
colocaremos como longitud un tres, y no un
número mayor ni menor.
DATOS NUMERICOS DECIMALES

En esta categoría, disponemos de tres tipos de


datos: FLOAT, DOUBLE y DECIMAL.

La estructura con la que podemos declarar un campo FLOAT implica definir


dos valores: la longitud total (incluyendo los decimales y la coma(PUNTO)), y
cuántos de estos dígitos son la parte decimal. Por ejemplo:
FLOAT (6.2)
Esta definición permitirá almacenar como minimo el valor -999.99 y como
máximo 999.99 (el signo menos no cuenta, pero el punto decimal sí, por eso
son seis digitos en total, y de ellos dos son los decimales).
DATOS NUMERICOS DECIMALES

FLOAT (6,2) donde el segundo numero el que indica la cantidad de decimales debe
estar en el rango de (0 y 24)
DOUBLE (6,2) donde el segundo numero el que indica la cantidad de decimales
debe estar en el rango de (25 y 53)
DECIMAL (6,2) donde el segundo numero el que indica la cantidad de decimales
debe estar en el rango de (64) MAXIMO 30 DECIMALES
DATOS ALFANUMERICOS CADENA DE
CARACTERES
TIPO DESCRIPCION

Este tipo de dato permite almacenar textos breves, de hasta 255 caracteres de longitud como máximo en caracteres que le
CHAR definamos, aunque no lo utilicemos.

es útil cuando la longitud del dato es desconocida, cuando depende de la información que el usuario escribe en campos o áreas de
VARCHAR texto de un formulario.
máximo de 65.535 caracteres.

Estos dos tipos de datos son identicos a CHAR y VARCHAR, respectivamente, salvo que almacenan bytes en lugar de caracteres,
BINARY Y VARBINARY una diferencia muy sutil para un nivel básico a intermedio de MySQL.
DATOS ALFANUMERICOS CADENA DE
CARACTERES
TIPO DESCRIPCION

TEXT texto largo.

Es un campo que guarda información en formato binario y se utiliza cuando se almacena en la base de datos el
contenido de un archivo binario (típicamente, una imagen o un archivo comprimido ZIP) leyéndolo byte a byte, y se
requiere almacenar todo su contenido para luego reconstruir el archivo y servidor al navegador otra vez, sin necesidad de
almacenar la imagen o el ZIP en un disco, sino que sus bytes quedan guardados en un campo de una tabla de la base de
datos.
BLOB
El tamaño máximo que almacena es de 65.535 bytes

El campo BLOB es para almacenar directamente "la imagen" (o un archivo comprimido, o cualquier otro archivo binario),
no su ruta.

Similares al BLOB, sólo cambia la longitud máxima:


TINYBLOB,
MEDIUMBLOB Y TINYBLOB es de 255 bytes
MEDIUMBLOB es de 16.777.215 bytes, y
LONGBLOB LONGBLOB es de 4 Gb (o lo máximo que permita manipular el sistema operativo).
DATOS ALFANUMERICOS CADENA DE
CARACTERES
TIPO DESCRIPCION

Este campo nos permite establecer cuáles serán los valores posibles que se le podrán insertar.Es decir, crearemos una lista de valores permitidos,
y no se autorizará el ingreso de ningún valor fuera de la lista, y se permitirá elegir solo uno de estos datos como valor del campo.

Los valores deben estar separados por comas y envueltos entre comillas simples.

El máximo de valores diferentes es de 65.535.


ENUM (EMNUMERACION)
Lo que se almacenará no es la cadena de caracteres en sí, sino el número de índice de su posición dentro de la enumeración.
Por ejemplo, si al crear la tabla definimos un campo de esta manera:

Ingreso de valores de una enumeración


En este ejemplo, la categoría será excluyente, no podremos elegir más de una, y todo docente (uno por registro) deberá tener una categoría
asignada.

e la misma manera que ENUM, debemos especificar una lista, pero de hasta 64 opciones solamente.

La carga de esos valores es idéntica a la de ENUM, una lista de valores entre comillas simples, separados por comas. Pero, a diferencia de ENUM,
SET (CONJUNTO) sí podemos llegar a dejarlo vacío, sin elegir ninguna opción de las posibles.

Y también podemos elegir como valor del campo más de uno de los valores de la lista.
DATOS DE FECHA Y HORA
DATE
El tipo de dato DATE nos permite almacenar fechas en el formato: AAAA-MM-DD (los
cuatro primeros dígitos para el año, los dos siguientes para el mes, y los últimos dos para
el día).
Atención:
En los países de habla hispana estamos acostumbrados a ordenar las fechas en Día, Mes y
Año, pero para MySQL es exactamente al revés.

Tengamos en cuenta que esto nos obligará a realizar algunas maniobras de


reordenamiento utilizando funciones de manejo de caracteres.
Si bien al leer un campo DATE siempre nos entrega los datos separados por guiones, al
momento de insetar un dato nos permite hacerlo tanto en formato de número continuo
(por ejemplo, 201512319, como utilizando cualquier caracter separador (2015-12-31 o
cualquier otro caracter que separe los tres grupos).
El rango de fechas que permite manejar desde el 1000-01-01 hasta el 9999-12-31.
Es decir, que no nos será útil si trabajamos con una línea de tiempo que se remote antes
del año 1000, (¿alguna aplicación relacionada con la historia?), pero si nos resultara útil
para datos de un pasado cercano y un futuro muy largo por delante, ya que llega casi
hasta el año 10.000.
DATOS DE FECHA Y HORA

DATETIME
Un campo definido como DATETIME nos permitirá almacenar información
acerca de un instante de tiempo, pero no sólo la fecha sino también su
horario, en el formato:
AAAA-MM-DD HH:MM:SS
Siendo la parte de la fecha de un rango similar al del tipo DATE (desde
el 1000-01-01 00:00:00 al 9999-12-31 23:59:59), y la parte del horario,
de 00:00:00a 23:59:59.
DATOS DE FECHA Y HORA

TIME

Este tipo de cambio permite almacenar horas, minutos y


segundos, en el formato HH:MM:SS, y su rango permitido va
desde -839:59:59 hasta 839:59:59(unos 35 días hacia atrás y
hacia adelante de la fecha actual). Esto lo hace ideal para
calcular tiempos trancurridos entre dos momentos cercanos.
DATOS DE FECHA Y HORA
TIMESTAMP

Un campo que tenga definido el tipo de dato TIMESTAMP sirve para almacenar
una fecha y un horario, de manera similar a DATETIME, pero su formato y rango de
valores serán diferentes.
El fomato de un campo TIMESTAMP puede variar entre tres opciones:
•AAAA-MM-DD HH:MM:SS
•AAAA-MM-DD
•AA-MM-DD
Es decir, la longitud posible puede ser de 14, 8 o 6 dígitos, según qué información
proporcionemos.
El rango de fechas que maneja este campo va desde el 1970-01-01 hasta el
año 2037.
Además, posee la particularidad de que podemos definir que su valor se
mantenga actualizado automáticamente, cada vez que se inserte o que
se actualice un registro.
DATOS DE FECHA Y HORA
TIMESTAMP

Un campo que tenga definido el tipo de dato TIMESTAMP sirve para almacenar
una fecha y un horario, de manera similar a DATETIME, pero su formato y rango de
valores serán diferentes.
El fomato de un campo TIMESTAMP puede variar entre tres opciones:
•AAAA-MM-DD HH:MM:SS
•AAAA-MM-DD
•AA-MM-DD
Es decir, la longitud posible puede ser de 14, 8 o 6 dígitos, según qué información
proporcionemos.
El rango de fechas que maneja este campo va desde el 1970-01-01 hasta el
año 2037.
Además, posee la particularidad de que podemos definir que su valor se
mantenga actualizado automáticamente, cada vez que se inserte o que
se actualice un registro.
DATOS DE FECHA Y HORA

YEAR

En caso de definir un campo como YEAR, podremos almacenar un año, tanto utilizando dos
como cuatro dígitos.
En caso de hacerlo en dos dígitos, el rango posible se extenderá desde 70 hasta 99 (del 70
hasta el 99 se entenderá que corresponden al rango de años entre 1970 y 1999, y del 00 al 69
se entenderá que se refiere a los años 2000 a 2069); en caso de proporcionar los cuatro
digitos, el rango posible se ampliará, yendo desde 1901 hasta 2155.
Buscar la ruta donde esta
instalado hacer clic en
xampp-control
Hacer clic en Stoppen de
apache y en Stoppen de
MySQL para activar

Una vez activado damos


clic en Admin de Apache y
dar chic en permitir

Dar clic enAdmin de


MySQl
Dar clic en Admin de
MySQl nos eviara ala
pagina de phpMyAdmin
que es un servidor de
MYSQL

Bases de
datos
preinstaladas
Cambiar clave
1. Hacer clic en ejecutar
2. Borrar todo el
contenido de la
carpeta htdocs luego
regresar
3. Abrir la carpeta
phpMyAdmin y buscar
config.inc abrir en un
editor de texto y
cambiar la parabra $cfg['Servers'][$i]['auth_type'] =
config por cookie 'cookie';$cfg['Servers'][$i]['user'] =
guardar cambios
4. Reiniciar el servicio de
Apache y de MySQL
5. Dar clic en MySQL
Admin
Cambiar clave
6. Entrar con usuario
root y sin clave clic en
continuar
7. Clic en cuenta de
usuarios y seleccionar

8. Dar clic en editar


privilegios
9. Clic en cambio de
contraseña
Cambiar clave
10. Escribir la contraseña
clic en continuar
11. Damos clic en la casita
y nos sale error para
corregir en el archivo
donde cambiamos
config por cookie
buscamos
Cambiar clave
10. Escribir la contraseña
clic en continuar
11. Damos clic en la casita
y nos sale error para
corregir en el archivo
donde cambiamos
config por cookie
buscamos donde dice
pasword =
'';$cfg['Servers'][$i][‘la
clave nueva'] y $cfg['Servers'][$i]['auth_type'] =
escribimos la clave 'cookie';$cfg['Servers'][$i]['user'] =
'root';$cfg['Servers'][$i]['password'] =
'';$cfg['Servers'][$i][‘clave nueva'] =
Cambiar clave
12. Reiniciar el Apache y
MySQL
Crear base de datos
1. Clic en la pestaña SQL
2. Escribir CREATE DATABASE MIPRIMEREBASEDATOS;
3. Seleccionar y dar Clic en continuar Nombre de la
base de datos
Ya aparece la base Dar clic en el nombre para abrir
de datos creada
Dar clic en SQL para crear las
tablas
Nombre de
la tabla

CREATE TABLE Usuario(

atributos

CREAR )

TABLAS CREATE TABLE Usuario(


Id = nombre del campo
Id INT (10) NOT NULL
INT = tipo de dato
(10)= longitud tamaño
NOT NULL = no puede
estar vacio
)
CREATE TABLE Usuario(
Id INT (10) NOT NULL,
CREAR Nombre VARCHAR (45),
Apellido VARCHAR (45),
TABLAS Edad CHAR (3),
PRIMARY KEY (Id)
)

Una ves terminado de escribir todos los campos de la


tabla y haber designado la llave primaria damos clic en
continuar

PRIMARY KEY (Id)=


asignar la clave
primaria (campo de la
tabla que va ha ser
clave primaria )
CREAR
TABLAS
CREAR
TABLAS
CREAR
TABLAS
CON
LLAVES
FORANEAS
SINTAXIS
Nombre de
la tabla

1. INSERT INTO usuario


INSERTAR (Id,Nombre,Apellido,Edad)
DATOS A LA 2. VALUES(‘60396888’,'Alba
Milena','Martinez
TABLE lopez',’30’)
3. Clic en continuar

Nota no olvidar las


comillas simples en cada
registro Se inserto una fila
Hacer clic en examinar para ver los registros realizados

INSERTAR
DATOS A LA
TABLE
SINTAXIS
Update nombre_tabla Set nombre_campo1 =
valor_campo1, nombre_campo2 = valor_campo2,... Where
condiciones_de_selección
Colocamos el nombre
carlos donde la id sea
UPDATE 60396888
UPDATE usuario SET Nombre ='Carlos' WHERE Id = 60396888;
Actualiza
información de hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario,
modificaríamos todos los registros de nuestra tabla.
una tabla
Update producto Set precio=990, descuento=25

Esa sentencia modificaría el campo precio y el campo descuento en todos


los productos de la tabla producto. Si tenemos una tabla con miles de
productos con esa sentencia se actualizarían todos, de modo que la totalidad
de los registros tendrían el mismo precio y el mismo descuento.
SINTAXIS
DELETE FROM ‘nombre_tabla’ Where
condiciones_de_selección

DELETE
Borra filas de DELETE FROM `usuario` WHERE Id=60396880
una tabla
Consulta para mostrar todos los datos de la
tabla usuario

SELECT*FROM usuario; SELECT= seleccionar esto


HACER *= todos los campos
CONSULTAS FROM = desde_tabla
Usuario= nombre de la
tabla
El resultado de una consulta
SELECT nos devuelve una tabla
lógica. Es decir, los resultados
son una relación de datos, que Cilc en
tiene filas/registros, con una serie continuar
de campos/columnas. Igual que
cualquier tabla de la base de
datos. Sin embargo esta tabla
está en memoria mientras la
utilicemos, y luego se descarta.
Cada vez que ejecutamos la
consulta se vuelve a calcular el
resultado.
HACER
CONSULTAS
1. Crear un proyecto en netbeans sin main
2. Crear el paquete
3. Crear en el paquete una clase llamada ConexiónBD
4. Cargar en biblioteca el siguiente conector
5. Importar import java.sql.*;
6. Escribir el siguiente código

CONECTAR public class ConexionBD {


Connection conexion;
public Connection conexion(){

BASE DE conexion=null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
DATOS CON conexion = (Connection)
DriverManager.getConnection("jdbc:mysql://localhost:3306/miprimerebasedatos","root","phpmilenaverde");
if (conexion != null){ jdbc:mysql://localhost:3306/"
NETBEANS System.out.println("conexion exitosa");
}
}
catch(Exception ex){
System.out.println(ex.getMessage());
System.out.println("conexion no exitosa"+ ex);
}return conexion;
}
public class LLenartabla extends javax.swing.JFrame {
// establecer conexión
ConexionBD con = new ConexionBD(); //se crea un objeto de la clase conexionBD
Connection cn = con.conexion(); // se crea una variable tipo Connection y se invoca
la conexión.

LLENAR UN private void BTNguardarActionPerformed(java.awt.event.ActionEvent evt) {


try {
REGISTRO EN PreparedStatement reg = cn.prepareStatement("INSERT INTO usuario
(Id,Nombre,Apellido,Edad) VALUES(?,?,?,?)");
LA BASE DE reg.setString(1, tesid2.getText());
reg.setString(2, tesnombre.getText());
DATOS reg.setString(3, tesapellido.getText());
reg.setString(4, tesedad.getText());
reg.executeUpdate();// para hacer cambios
JOptionPane.showMessageDialog(null, "datos guardados");
} catch (SQLException ex) {
Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE, null,
ex);
}
}
Código para llenar un registro de una tabla de la base de datos

private void BTNguardarActionPerformed(java.awt.event.ActionEvent evt) {


try {
PreparedStatement reg = cn.prepareStatement("INSERT INTO usuario
LLENAR UN (Id,Nombre,Apellido,Edad) VALUES(?,?,?,?)");
reg.setString(1, tesid2.getText());
REGISTRO EN reg.setString(2, tesnombre.getText());
reg.setString(3, tesapellido.getText());
LA BASE DE reg.setString(4, tesedad.getText());
reg.executeUpdate();// para hacer cambios
DATOS JOptionPane.showMessageDialog(null, "datos guardados");
} catch (SQLException ex) {
Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE, null, ex);
}
}
Boton guardar, Evento ActionPerformed {

Código = private void BTNguardarActionPerformed(java.awt.event.ActionEvent evt) {


LLENAR UN }

REGISTRO EN Try se utiliza cuando se desean prever excepciones en el


transcurso de la ejecución de un programa. Es necesario
LA BASE DE ya que ahí se colocan las instrucciones que se desean
DATOS realizar pese a la excepción, posteriormente se usa
un catch donde se especifica la excepción que se sabe
puede ocurrir.

descripción del private void BTNguardarActionPerformed(java.awt.event.ActionEvent evt) {


try {
código instrucciones a realizar
}
catch (SQLException ex) {
Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE, null, ex);
}
Instrucciones
de acepción
PreparedStatement reg = cn.prepareStatement("INSERT INTO usuario
(Id,Nombre,Apellido,Edad) VALUES(?,?,?,?)");

LLENAR UN PreparedStatement = Clase de java


REGISTRO EN reg = objeto de la clase PreparedStatement
cn.prepareStatement(“tabla y sus campos” ) = conectar a la base de datos
LA BASE DE
("INSERT INTO usuario (Id,Nombre,Apellido,Edad) VALUES(?,?,?,?)“
DATOS

descripción del instrucción


Nombre de
sq para Valores
código insertar
la tabla
Campos de la tabla nuevos
registro en se deben colocar en
tabla el orden que están
en la tabla
reg.setString(1, tesid2.getText());
Establecer en la base de datos
reg.setString(2, tesnombre.getText());
los datos ingresados por el
reg.setString(3, tesapellido.getText());
LLENAR UN reg.setString(4, tesedad.getText());
usuario

REGISTRO EN
LA BASE DE Objeto reg invoca la clase
DATOS setString y en ( posición ,
nombre de la caja de
testo.getTEx() para cacturar
su contenido)
descripción del
código reg.executeUpdate();// para hacer cambios en la base de datos
HACER
CONSULTA EN
LA BASE DE
DATOS
USANDO UNA 1. Damos clic en la pestaña código y le damos
JTABLE DE nombre

NETBEANS
2. Damos clic en la pestaña propiedades y
buscamos model y hacer clic en el cuadrito
3. Eliminar todas las filas cuando termine clic en aceptar
HACER
CONSULTA EN
LA BASE DE
DATOS
USANDO UNA
JTABLE DE
NETBEANS
4. Crear un método para crear tablas
public void mostarconsulta(){
HACER DefaultTableModel modelo= new DefaultTableModel(); // se crea un objeto de DefaultTableModel que es un es un modelo genérico
modelo.addColumn("IDENTIFICACION");//

CONSULTA EN modelo.addColumn("NOMBRE");
modelo.addColumn("APELLIDO");
modelo.addColumn("EDAD");
adiciono cada nombre de las columnas de la tabla

LA BASE DE jTableCONSULTA.setModel(modelo);// adiciono lo creado anteriormente a la tabla

String sql = "Select * from usuario";// realizar la consulta en la base de datos


DATOS String resultado[] = new String[4]; // se crea un vector donde el tamaño sera el numero de columnas de la tabla
Statement st; // para ejecutar sentencias sql

USANDO UNA try {


st = cn.createStatement(); // cerrar la sentencia sql y obtener el resultado
ResultSet rs = st.executeQuery(sql); // obtiene el resultado de la consulta sql

JTABLE DE while(rs.next()){
resultado[0]=rs.getString(1);
resultado[1]=rs.getString(2); Ciclo para recorrer el resultado de

NETBEANS resultado[2]=rs.getString(3);
resultado[3]=rs.getString(4);
la consulta

modelo.addRow(resultado);// guardar el modelo


}
jTableCONSULTA.setModel(modelo); // mostrar en el grafico

} catch (SQLException ex) {


Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE, null, ex);
}
4. Crear un método para crear tablas donde se muestra todo o solo un datos
public void mostarconsulta(String valor ){
DefaultTableModel modelo= new DefaultTableModel(); // se crea un objeto de DefaultTableModel que es un es un modelo genérico
modelo.addColumn("IDENTIFICACION");// adiciono cada nombre de las columnas de la tabla

HACER modelo.addColumn("NOMBRE");
modelo.addColumn("APELLIDO");
modelo.addColumn("EDAD");

CONSULTA EN jTableCONSULTA.setModel(modelo);// adiciono lo creado anteriormente la la tabla

String sql;// crear objeto

LA BASE DE if (valor.equals(""))
{
sql= "Select * from usuario"; //realizar la consulta en la base de datos

DATOS }
else {

sql= "Select * from usuario where id='"+valor+"'";// consultar el id introducido por el usuario

USANDO UNA }
String resultado[] = new String[4]; // se crea un vector donde el tamaño sera el numero de columnas de la tabla
Statement st; // para ejecutar sentencias sql

JTABLE DE try {
st = cn.createStatement(); // cerrar la sentencia sql y obtener el resultado
ResultSet rs = st.executeQuery(sql); // obtiene el resultado de la consulta sql

NETBEANS while(rs.next()){
resultado[0]=rs.getString(1);
resultado[1]=rs.getString(2);
resultado[2]=rs.getString(3);
resultado[3]=rs.getString(4);
modelo.addRow(resultado);// guardar el modelo
}
jTableCONSULTA.setModel(modelo);

} catch (SQLException ex) {


Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE, null, ex);
}

}
1. Seleccionar los datos a modificar
2. Modificar
3. Guardar los cambios

HACER int fila =jTableCONSULTA.getSelectedRow();// fila toma lo que hay en la fila seleccionada
if (fila>=0){
MODIFICACION tesid2.setText(jTableCONSULTA.getValueAt(fila,0).toString());
EN LA BASE DE tesnombre.setText(jTableCONSULTA.getValueAt(fila,1).toString());
tesapellido.setText(jTableCONSULTA.getValueAt(fila,2).toString());
DATOS tesedad.setText(jTableCONSULTA.getValueAt(fila,3).toString());
tesid2.setEnabled(false);
}
else{

JOptionPane.showMessageDialog(null,"fila no seleccionada");

}
1. Seleccionar los datos a modificar
2. Modificar
3. Guardar los cambios
try {
HACER PreparedStatement pst = cn.prepareStatement("UPDATE usuario SET
Nombre='"+tesnombre.getText()+"',Apellido='"+tesapellido.getText()+"',Edad='
MODIFICACION "+tesedad.getText()+"' WHERE Id ='"+tesid2.getText()+"'");
EN LA BASE DE pst.executeUpdate();// realizar la actualizacion en la base de datos
JOptionPane.showMessageDialog(null,"datos actualizados ");
DATOS limpiar();
mostarconsulta("");
} catch (SQLException ex) {
Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE,
null, ex);
}
1. Seleccionar los datos a eliminar para una sola tabla

int fila =jTableCONSULTA.getSelectedRow();// fila toma lo que hay en la fila


seleccionada
ELIMINACION String idaeliminar ="";
idaeliminar=jTableCONSULTA.getValueAt(fila,0).toString();
DE DATOS LA try {
PreparedStatement pst1 = cn.prepareStatement("DELETE FROM usuario
BASE DE WHERE Id='"+idaeliminar+"'");
DATOS pst1.executeUpdate();// actuañizar en la base de datos
JOptionPane.showMessageDialog(null,"datos eliminados ");
limpiar();
mostarconsulta("");
} catch (SQLException ex) {
Logger.getLogger(LLenartabla.class.getName()).log(Level.SEVERE, null, ex);
}
1. Seleccionar los datos a eliminar para varias tablas relacionadas
private void btneliminarActionPerformed(java.awt.event.ActionEvent evt) {

int fila =jTableconsulta.getSelectedRow();// fila toma lo que hay en la fila seleccionada


String idaeliminar ="";// crear un objeto
idaeliminar=jTableconsulta.getValueAt(fila,0).toString();
String matricula;// crear objeto para obtenerr el dato de la matricula a eliminar
matricula = "SELECT matricula FROM coche WHERE coche.id='"+idaeliminar+"'"; //realizar la consulta en la base de datos

ELIMINACION Statement st; // para ejecutar sentencias sql


String resultado[] = new String[1]; // se crea un vector de tamaño 1 por que es un solo dato
try {

DE DATOS LA st = cn.createStatement(); // cerrar la sentencia sql y obtener el resultado


ResultSet matri = st.executeQuery(matricula); // obtiene el resultado de la consulta sql
while(matri.next()){ // para recorrer la consulta
resultado[0]=matri.getString(1);// contiene la matricula a elimina

BASE DE }

PreparedStatement pst1 = cn.prepareStatement("DELETE FROM revision WHERE revision.matricula='"+resultado[0]+"'");

DATOS
pst1.executeUpdate();// actualizar
JOptionPane.showMessageDialog(null,"datos eliminados revision ");
PreparedStatement pst2 = cn.prepareStatement("DELETE FROM coche WHERE coche.matricula ='"+resultado[0]+"'AND coche.id= '"+idaeliminar+"'");
pst2.executeUpdate();
JOptionPane.showMessageDialog(null,"datos eliminados matricula ");
PreparedStatement pst3 = cn.prepareStatement("DELETE FROM cliente WHERE cliente.id='"+idaeliminar+"'");
pst3.executeUpdate();
JOptionPane.showMessageDialog(null,"datos eliminados cliente ");
limpiar();
mostarconsulta("");
} catch (SQLException ex) {
Logger.getLogger(FORMULARIOTODO.class.getName()).log(Level.SEVERE, null, ex);

}
public void limpiar(){
tesid2.setText("");
tesnombre.setText("");
tesapellido.setText("");
tesedad.setText("");
tesid2.setEnabled(true);
Función }

limpiar

También podría gustarte