Publi

Otra forma de trabajar con MySQL desde Emacs con org-mode y org-babel


Sé que org-mode vale para mucho más, pero es tan grande su utilidad, que hasta para esto nos puede servir, y nos permitirá hacer cosas muy chulas.

Aunque no es tan flexible como tener una instancia del comando mysql abierto, la potencia que nos ofrecerá para tratar la salida es grandísima.

Sólo tenemos que tener org-mode instalado, y org-babel configurado. Para configurar org-mode y org-babel, debemos introducir en nuestro $HOME/.emacs lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(require 'org-install)

(org-babel-do-load-languages
 'org-babel-load-languages
 '((R . t)
   (ditaa . t)
   (dot . t)
   (emacs-lisp . t)
   (gnuplot . t)
   (haskell . nil)
   (latex . t)
   (ledger . t)        
   (ocaml . nil)
   (octave . t)
   (python . t)
   (ruby . t)
   (screen . nil)
   (sh . t)
   (sql . t)
   (sqlite . t)))

org-babel, prácticamente, nos permitirá evaluar código fuente de varios lenguajes interpretados, para introducirlo en documentos que podemos crear con org-mode y exportarlos en múltiples formatos. Tiene una documentación muy extensa y es un software muy flexible además de un imprescindible de EMACS.

Lo que vamos a hacer hoy es evaluar un pequeño código mysql, en concreto, un SELECT, cuya respuesta será una tabla. Para ello, algo que podemos introducir en una plantilla es lo siguiente:

1
2
#+begin_src sql :engine mysql :cmdline --socket=/tmp/mysql_sandbox5166.sock -uroot -ppassword
#+end_src

Aquí especificáis en :engine mysql (este modo soporta otros motores también), y en :cmdline todo lo necesario para conectar, usuario, password, y por ejemplo, si utilizáis mysql sandbox, el socket.

Las líneas #+begin_src y #+end_src son las que le dicen a org-babel que tiene que interpretar lo que hay dentro. Entonces, escribimos nuestra consulta, en este caso, es la base de datos de Krecipes:

1
2
3
#+begin_src sql :engine mysql :cmdline --socket=/tmp/mysql_sandbox5166.sock -uroot -ppassword
SELECT * FROM Krecipes.recipes
#+end_src

Ahora, situando el cursor dentro de la consulta, pulsamos C-c C-c y nos preguntará si queremos ejecutar este bloque, acto seguido, aparecerá en #+RESULTS: la tabla que ha devuelto MySQL. Pero ahí no acaba todo.

A partir de aquí podemos utilizar todas las comodidades que nos ofrece org-mode con las tablas como mover columnas, mover filas, eliminar filas y columnas, insertar información, insertar separadores, aplicar fórmulas, y además, podemos exportar las tablas como CSV (bueno, esto no tiene ningún mérito), ODT, PDF, LaTeX, HTML, y unos cuantos formatos más. Sólo tenemos que hacer M-x org-table- [TAB] para ver todas las posibilidades que tenemos o org-export [TAB]

Consejo

Podemos evaluar la expresión:

(setq org-confirm-babel-evaluate nil)

para evitar que se nos pregunte cada vez que vamos a evaluar un código, pero hemos de usarla con cuidado, cuando confiemos 100% en lo que escribimos.

También podría interesarte....

There are 5 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. heardle game /
    Usando Google Chrome Google Chrome 116.0.0.0 en Windows Windows NT

    This forces players to use critical thinking, logical thinking, speculation, and to expand their vocabulary. These mental challenges help players improve their improvisation, perception, and problem-solving abilities. Thanks

  3. Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    Hello, I read this nice article. I think You put a best effort to write this perfect article. I appreciate your work. thank you so much.

  4. Jackets From Movies /
    Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    This is a great inspiring article. I am pretty much pleased with your good work. You put really very helpful information.

  5. soniya singhania /
    Usando Google Chrome Google Chrome 121.0.0.0 en Windows Windows NT

    Where you can never feel deprived of the pleasure you’re after. Our ultimate Newly Married Call Girls In Goa are transform into sex goddesses when it comes to making wild and passionate love to their discerning clients. Those golden moments which you will be sharing with Goa escort girls will be etched in your mind for good

Leave a Reply