Consulta a base de datos con Vim

26 06 2008

Suele ser más habitual usar Vi como editor auxiliar en el cliente en línea de comandos disponible para determinadas bases de datos. A continuación comento el procedimiento para interactuar con una base de datos MySQL desde Vim (clónico muy popular del omnipresente editor).

Se necesita:

Se descomprime dbext.zip en $Vim/vimfiles de forma que los archivos se copien a los directorios doc, autoload y plugin.

A continuación se edita el fichero de configuración de Vim, vimrc, y se insertan las siguientes líneas:

"MySQL
let g:dbext_default_profile_mysql_local = 'type=MYSQL:user=root:passwd=mysql:dbname=mysql:extra=-t'

En este caso existe una base de datos MySQL, y el cliente en línea de comandos se ha añadido a la variable PATH.

Para probar que funciona, se crea un fichero nuevo con extensión sql, y se realiza una consulta (escribiendo la sentencia SQL y ejecutando con SCAPE+\+s+e o desde el menú en la versión gráfica).

vim prueba.sql

select current_time();

Para muestra, un botón 🙂

vim_mysql

P.D.: La \ representa a <Leader> por defecto en Vim.





ANSI Inner join de tres tablas

24 06 2008

Los desarrolladores acostumbrados a trabajar con Oracle como base de datos suelen recurrir a la sintaxis propia para escribir una consulta donde se relacionan tres tablas a través de un identificador:

SELECT COUNT(a.id)
FROM a, b, c
WHERE a.id = b.id
AND a.id = c.id;

pero existe otra sintaxis que empieza a recomendarse, la sintaxis ANSI, que para el caso de la INNER JOIN escrita antes quedaría:

SELECT COUNT(a.id)
FROM a INNER JOIN b
ON a.id = b.id
INNER JOIN c
ON a.id = c.id;

Espero que os sea de utilidad.