Aprovechando que he instalado el XAMPP, he estado probando la funcionalidad de NetBeans de conectar a bases de datos.
Para esto nos situamos en la pestaña Runtime de Netbeans, allà nos encontramos los servidores, bases de datos, webservices del proyecto y el catálogo de DTD’s y schemas XML.
Desplegamos Databases y, al menos en mi caso, encontramos dos conexiones a Java DB (Derby) que viene embebido y Drivers que es donde debemos añadir el driver de Mysql u otro gestor de base de datos al que quisieramos conectar.
Pulsamos botón derecho sobre Drivers y New Driver, seguidamente buscamos el jar y lo añadimos, entonces ya nos sale dentro de nuestros Drivers.
Seleccionamos el driver de Mysql, pulsamos botón derecho y le damos a Connect Using…, ya sólo nos queda poner la tÃpica cadena de la URL de la conexión jdbc, por ejemplo jdbc:mysql://localhost:3306/test, para la base de datos test que tengo en local, y el nombre de usuario y password de Mysql.
Y ya podemos conectar a la base de datos, donde podremos ver tablas, vistas y procedimientos almacenados además de, como no, ejecutar comandos SQL.
Posted by Dani on Tuesday, June 12th, 2007
Hoy me he encontrado con la situación de que en un proyecto desarrollado sobre un gestor de bases de datos MySQL 5, debÃamos realizar un downgrade a MySQL 4 por el servidor de producción del cliente.
Pensaba que serÃa más tedioso el paso, sobre todo porque sólo podÃa accerder a phpMyAdmin, ni soy un experto en MySQL.
Para este caso, al no utilizar las nuevas caracterÃsticas de MySQL (triggers,vistas,procedures…), ha sido bastante sencillo, en sólo dos intentos hemos downgradeado.
Con phpMyAdmin para exportar con compatibilidad a otros gestores de bases de datos debemos modificar el SQL compatibility mode, en este caso a MYSQL40, y nos genera un SQL compatible con este.
Con gestores diferentes a MySQL, no lo he probado más que con Oracle (no recuerdo la versión), pero no me funcionó correctamente.
Posted by Dani on Wednesday, May 2nd, 2007
He leÃdo un interesante post en quarkblog, sobre el operador JOIN del álgebra relacional.
Una lectura muy recomendable, sobre todo para quiénes empiezan.
No está de más repasar algunos conceptos, sobre todo el de unir las tablas en el where en vez de con joins, que tienen peor rendimiento, tal y como explicado, cosa que a mà en su dÃa me enseñaron mal (no me explicaron la diferencia) pero hace ya bastante que corregÃ.
A raÃz de esto, siempre que sea posible, es preferible filtrar los registros en el on, asà delimitamos más el conjunto de registros afectados.
Posted by Dani on Tuesday, April 24th, 2007
En orcale no existen los autoincrementales, para que se incremente un valor, debemos utilizar una secuencia para el campo a incrementar y un trigger para la tabla.
Creamos la secuencia:
CREATE SEQUENCE nombredelasecuencia increment by 1 start with 1;
Creamos el trigger:
CREATE OR REPLACE TRIGGER nombredeltrigger
before insert on nombredelatabla for each row begin
if inserting then
if :NEW.autonumerico is null then
select nombredelasecuencia.nextval into :NEW.autonumerico from dual;
end if;
end if;
end;
Posted by Dani on Saturday, February 10th, 2007
Acostumbro a pasarme por algún foro de vez en cuando, tanto para ver si puedo ayudar a alguien como a pedir ayuda.
En muchos foros de SQL o bases de datos me he encontrado con alguna pregunta de porqué da error una consulta del tipo:
SELECT * FROM personas WHERE nombre = perico
Y la respuesta suele ser:
SELECT * FROM personas WHERE nombre = ‘perico’
Que no es del todo correcto, pero en MySql funciona correctamente y como es un gestor de bases de datos muy extendido, por costumbre, se puede tomar como respuesta correcta, pero si utiliza otro gestor distinto puede dar errores, por eso hay que intentar escribir siempre en SQL-92 ya que la inmensa mayorÃa lo soportan, además de darle añadidos al lenguaje como por ejemplo este caso, o Transact-SQL y PL/SQL
Respuesta con SQL-92:
SELECT * FROM personas WHERE nombre like ‘perico’
Con esta respuesta nos aseguramos que siempre que el SGBD soporte el SQL-92, como en la mayorÃa de ocasiones (por no decir siempre), va a funcionar sin ningún problema.
Posted by Dani on Tuesday, July 4th, 2006