MySQL Stored Procedures: A Basic Overview

Standard

Over the last days, i’ve dealing with the challenge of develop some database functions whose need to process some million rows to analyze the whole dataset. As a basic tool, a store procedure may save you several time and a lot of effort.

What is a stored procedure?

A stored procedure is a procedure (like a subprogram in a regular computing language) that is stored (in the database). Correctly speaking, MySQL supports “routines” and there are two kinds of routines: stored procedures which you call, or functions whose return values you use in other SQL statements the same way that you use pre-installed MySQL functions like pi() or now(). I’ll use the word “stored procedures” more frequently than “routines” because it’s what we’ve used in the past, and what people expect us to use.

How is a stored procedure composed?

A stored procedure has a name, a parameter list, and an SQL statement, which can contain many more SQL statements. There is new syntax for local variables, error handling, loop control, and IF conditions. Here is an example of a statement that creates a stored procedure. Continue reading

Configurando Ubuntu Server 14.04 LTS Con Apache + Passenger + RVM + MySQL + Postgresql

Standard

Hoy les traigo un pequeño tutorial para la instalación de un ambiente ya sea para pruebas o producción para sus proyectos en rails.

Si al igual que un servidor, hacen proyectos en rails de manera constante y con versiones de Ruby y Ruby on Rails diferentes es muy probable que se topen con esta necesidad básica al momento de hacer un deploy de sus apps. Así bien, espero ayudarles un poco a través de esta pequeña guía, explicándoles el proceso que he seguido para configurar un servidor Ubuntu 14.04.

Continue reading

PostgreSQL desde terminal con psql

Standard

Antecedentes:

Hola a todos, en esta publicación les voy a compartir por qué es buena idea utilizar el acceso desde terminal hacia una DB como PostgreSQL.
En este punto debo aclarar que durante todos los proyectos que he participado, estaba acostumbrado a trabajar con algún cliente o editor de SQL para la DB con la que estuviera trabajando. Algunos ejemplos:
– SQL Server: SQL Server Management Studio.
– MySQL: MySQL Workbench, SQL Yog.
– Oracle: Oracle Client, Aptana
– PostgreSQL: pgAdmin.
Con sus diferencias, la experiencia de usuario era más o menos similar, instalas tu cliente, das de alta tu sesión y te pones a trabajar con tu administración de DB y a hacer queries. Hasta aquí todo normal, el problema viene cuando trabajas en ambientes distribuidos, que implica una latencia muy alta en la respuesta de los servidores, en este caso, algunos de los editores de SQL, al tener interfaces más elaboradas, no tienen los mejores tiempos de respuesta.
Un ejemplo claro de este tipo de sistema son los servidores en la nube, como Amazon EC2, donde hay diferentes soluciones para hacer tunneling al servidor o abrir el puerto, en ambos casos nos permite acceder de manera remota, pero la latencia de la red hace muy lenta la operación.
A raíz de que empecé a participar en más proyectos de este tipo, con PostgreSQL sobre Amazon EC2, lo primero que hice fue empezar a usar pgAdmin para administrar las DB, pero a raíz del problema expuesto, empecé a buscar alternativas.
Fue con unos compañeros que estaba cursando su maestría donde vi que todas sus operaciones de DB las hacían a través de Terminal, sin necesidad de ningún cliente.
A pesar de ver algunas ventajas de hacerlo así, me tomó tiempo tomarlo como una opción que me ahorraría tiempo en mis proyectos, ahora es la única manera que utilizo, por la sencilla razón de que ya no tengo problemas de desconexión. Esta opción es sobre la que les voy a dar algunos tips de como sacarle mayor provecho.
PosgreSQL

Continue reading