Iniciamos con este una serie de artículos sobre SQL para Testers, basada en el excelente artículo SQL for Testers Training publicado por The Bearded Tester. Si leéis inglés técnico, mi recomendación sería descargar su “libro” y empezar a jugar con alguna base de datos de test que tengáis a vuestra disposición. El libro ya no está disponible en su web, así que si alguien lo quiere, por favor que nos lo pida a través del formulario de la página de contacto. También puedes seguir leyendo aquí nuestra traducción/adaptación.
¿Qué es SQL?
Si queréis la definición completa, podéis ir directamente a la wikipedia: SQL. La versión corta es que SQL es un Lenguaje de Consulta Estructurado (structured query language) para relacionarnos con bases de datos. ¿Y esto qué quiere decir? Pues que SQL permite acceso y manipulación de bases de datos.
Conocer SQL es de gran importancia para los testers, pues de esta manera vamos a poder insertar, modificar, borrar y comprobar datos directamente en la base de datos, y comprobar que los datos con los que trabaja la aplicación bajo pruebas son correctos, o son los esperados.
¿Para qué puedo usar SQL?
- Para ejecutar consultas sobre una base de datos
- Recuperar datos de una base de datos
- Insertar y actualizar registros en una base de datos
- Eliminar registros de una base de datos
- La creación de nuevas bases de datos, tablas, procedimientos almacenados y vistas
- Establecer permisos en procedimientos tablas y vistas
¿Qué necesito para usar SQL?
SQL por si mismo nos va a permitir acceder a la base de datos y manipular datos, pero para aprovechar la base de datos, necesitamos otras herramientas que conectarán con nuestra base de datos, consultarán, mostrarán, modificarán o borrarán datos.
Lo primero que vamos a necesitar para poder trabajar con SQL es un motor de bases de datos y alguna herramienta para poder conectarnos a esa base de datos. Por suerte tenemos varias alternativas gratuitas que nos van a permitir hacer esto:
La primera opción es descargarnos directamente la versión Microsoft® SQL Server® 2008 R2 SP2 junto con SQL Management Studio. El primero es el motor de bases de datos y la segunda es la herramienta que nos va a permitir conectarnos a la base de datos para poder relacionarnos con ella.
Si os decantáis por usar MySQL, que es Open Source, yo creo que la alternativa más sencilla, rápida y además multiplataforma que tenéis es instalar un servidor de desarrollo tipo WAMP (para Windows), MAMP (para Mac OS) o LAMP (para Linux). En este caso vamos a instalar más de lo que en principio necesitaríamos, pero nos vamos a dotar de una manera sencilla de una infraestructura que nos va a venir muy bien posteriormente.
Sintaxis básica SQL. Usos comunes.
Sintaxis básica SQL; Cláusulas comunes, declaraciones y Operadores
Tablas de base de datos
Los datos se almacenan en objetos llamados Tablas. Una tabla es una colección de entradas de datos relacionados y consiste en Columnas. Las bases de datos suelen contener una o varias Tablas y cada Tabla se identifica por un nombre (por ejemplo,
‘Clientes’). Las tablas contienen registros (o filas) de datos.
A continuación se muestra un ejemplo de una tabla de base de datos denominado Clientes. La tabla contiene tres registros (uno para cada persona) y cinco columnas:

Instrucciones SQL básicas
La mayor parte de las acciones que debe llevar a cabo en una base de datos se hacen con sentencias SQL.
Algunos puntos clave a tener en cuenta antes de continuar:
- SQL no distingue entre mayúsculas y minúsculas.
- Algunos sistemas de bases de datos requieren un punto y coma al final de cada sentencia SQL. Punto y coma es la forma estándar para separar cada instrucción SQL en sistemas de bases de datos que permiten a múltiples sentencias que se ejecutan en la misma llamada al servidor.
- El asterisco (*) es una forma rápida de seleccionar todo.
- SQL utiliza comillas simples alrededor de valores de texto (la mayoría de los sistemas de bases de datos también aceptar doble citas). Sin embargo los valores numéricos no deben ir entre comillas.
- El signo de porcentaje (%) se utiliza para definir los patrones (letras en el patrón de falta) y puede ser usado tanto antes como después de las letras (cadenas).
SQL SELECT
La sentencia SQL SELECT se usa para seleccionar datos de una base de datos. El resultado es almacenado en una tabla llamada Result-Set. La sintaxis es la siguiente:
SELECT nombre_columna FROM nombre_tabla
Como alternativa, podemos cambiar nombre_columna por un asterisco (*) para que la consulta nos devuelva todas las columnas.
Por ejemplo, sobre la base de datos anterior:




Si queremos obtener el contenido de las columnas ‘Lastname’ y ‘Firstname’, deberíamos usar la sentencia Select de la siguiente manera;
SELECT LastName, FirstName FROM Clientes
Y obtendríamos:


Si lo que queremos es obtener el contenido de todas las columnas de la tabla Clientes, usaríamos la siguiente sentencia:
SELECT * FROM Clientes
Dónde el resultado sería:




SQL SELECT DISTINCT
La sentencia SQL SELECT DISTINCT se usa para seleccionar sólo los valores individuales de una base de datos que puede contener valores duplicados. La sintaxis es la siguiente:
SELECT DISTINCT nombre_columna FROM nombre_tabla
Por ejemplo, siguiendo con nuestro ejemplo, partiendo de la misma tabla:


Si lo que queremos saber es que valores DISTINTOS tiene la columna ‘City’, lo haríamos ejecutando la siguiente sentencia:
SELECT DISTINCT City FROM Clientes
Y el resultado sería el siguiente:


SQL WHERE
La sentencia SQL WHERE se usa para seleccionar sólo las filas de una base de datos que tienen un criterio determinado. La sintaxis es la siguiente:
SELECT nombre_columna FROM nombre_tabla WHERE nombre_columna operador valor
Cuando usamos la cláusula WHERE, podemos usarla con los siguientes operadores:
- = Igual
- <> No Igual (En algunas versiones de SQL se puede encontrar como !=)
- < Menor que
- > Mayor que
- <= Menor que o igual
- >= Mayor que o igual
- BETWEEN Entre 2 valores
- LIKE Busca un determinado patrón
- IN Especifica múltiples posibles valores para una columna
Por ejemplo, siguiendo con nuestro ejemplo, partiendo de la misma tabla:
Si lo que queremos es seleccionar sólo la gente que vive en London, usaríamos la siguiente cláusula WHERE como parte de la sentencia SELECT. Lo haríamos ejecutando la siguiente sentencia:
SELECT * FROM Clientes WHERE City ='London'
Y el resultado sería el siguiente:


Si quisiéramos seleccionar sólo la gente cuyos nombres comienzan con la letra H, usaríamos la siguiente cláusula y operador WHERE como parte de la sentencia Select
SELECT * FROM Clientes WHERE FirstName Like'H%'
Y el resultado sería el siguiente:


Hasta aquí esta primera parte de nuestra serie:
SQL Para Testers
En breve publicaremos los siguientes artículos de esta serie, así como artículos explicando la instalación de SQL Management Studio, cómo conectarse a bases de datos y algunos otros conceptos básicos muy importantes.
2 comentarios en «SQL Para Testers (I)»