Entendemos como sentencias de definición de datos (data definition language) todas aquellas que permitan manipular la estructura de nuestra base de datos.
Se trata de una manera de definir ciertos comandos de datos. Estas sentencias pueden ser:
- CREATE: se encarga de crear bases de datos o tablas.
- ALTER: la usaremos para la modificación de tablas o bases de datos.
- DROP: la usaremos para borrar bases de datos o tablas.
- RENAME: usaremos esta sentencia para cambiar el nombre de nuestra base de
datos o de una tabla.
Estos comandos son exclusivamente para hacer modificaciones en las tablas, no para realizar consultas en MySQL. JDBC nos da opciones para poder hacer este tipo de sentencias mediante el código Java.
Crear tablas o bases de datos
El comando CREATE se puede usar para crear una tabla o una base de datos. Normalmente, ya tendremos creada la base de datos, pero si en alguna ocasión se tiene que realizar, se puede hacer mediante la aplicación.
Aquí tenemos la estructura teórica que podemos adaptar para nuestras sentencias y necesidades. La estructura básica de estas sentencias son estas, a modo de recordatorio:
public void crecionBaseDeDatos() throws Exception {
Connection conn = null;
Statement stmt = null;
try {
//Paso 1.Previamente habremos realizado la conexión
conn = conector.conector();
//Paso 2. Creamos un nuevo objeto con la conexión
stmt = conn.createStatement();
//Paso 3. Definimos la sentencia de crear una nueva base de datos
String sql = "CREATE DATABASE ejemplo";
//Paso 4. Ejecutar la sentencia
stmt.executeUpdate(sql);
}catch(SQLException se){
//Gestionamos los posibles errores que puedan surgir durante la ejecucion de la insercion
se.printStackTrace();
}catch(Exception e){
//Gestionamos los posibles errores
e.printStackTrace();
}finally{
//Paso 5. Cerrar el objeto en uso y la conexión
stmt.close();
conn.close();
}
}
Modificar tablas
Para la modificación de tablas o de bases de datos utilizaremos la sentencia ALTER. ALTER es la operación SQL que se encargará de realizar cambios dentro de la base de datos o de la tabla que especifiquemos, siempre que esos datos existan. Nos permitirá añadir, cambiar o eliminar campos de una tabla, o también renombrar una tabla. Estas son las estructuras básicas para realizar este tipo de operaciones:
//Para modificar la base de datos
ALTER DATABASE nombre_base_de_datos MODIFY NAME=nuevo_nombre;
//Para añadir columnas
ALTER TABLE nombre_tabla ADD COLUMN nombre_columna tipo_dato;
//Para modificar columnas
ALTER TABLE nombre_tabla MODIFY COLUMN nombre_columna tipo_dato;
//Para borrar una columna
ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;
Las opciones con esta sentencia son bastante amplias: podremos modificar columnas, añadirlas o hasta borrarlas. Aquí podemos ver un ejemplo práctico:
Statement stmt = null;
try {
//Paso 1: Realizamos la conexión
conn = conector.conector();
System.out.println("Nos hemos conectado a la BBDD");
//Paso 2: Preparamos el objeto Statement
stmt = conn.createStatement();
//Paso 3:Modificacion de la base de datos, borrar 2 columnas
String sql = "ALTER TABLE estudiante DROP COLUMN dni, DROP COLUMN edad;";
stmt.executeUpdate(sql);
}catch(SQLException se){
//Gestionamos los posibles errores que puedan surgir durante la ejecución de la inserción
se.printStackTrace();
} catch (Exception e) {
System.out.println("Se ha producido un error.");
} finally {
stmt.close();
conn.close();
}
Eliminar tablas o bases de datos
El comando DROP es utilizado para borrar bases de datos o tablas dentro de nuestra base de datos. Cuando ejecutamos este comando, todos los datos que contenga la BBDD o la tabla también se borran. Como recordatorio, aquí tenemos la estructura básica para las dos opciones de DROP:
//Para borrar una base de datos
DROP DATABASE nombre_base_datos;
//Para borrar una tabla
DROP TABLE nombre_tabla;
La estructura es muy simple y adaptarlo a la estructura JDBC será parecido a lo que venimos realizando con los otros comandos. Como podemos apreciar, también usaremos la interfaz Statement. La sentencia DROP, al no devolver ningún registro ni información, es ideal para este tipo de interfaz, ya que está especialmente diseñada para operaciones sencillas con la base de datos.
Renombrar tablas
El comando RENAME nos permitirá renombrar una tabla, es decir, modificar el nombre por otro. Este tipo de operación no producirá ningún cambio en los registros que contenga esa tabla, solo se modificará el nombre de la tabla. La estructura que deberemos seguir es esta:
//Para renombrar una tabla
RENAME TABLE nombre_tabla TO Nuevo_nombre_tabla;
Como hemos visto en ejemplos anteriores, el procedimiento es el mismo, solo cambia la sentencia SQL.