martes, 23 de septiembre de 2014

Receta T-SQL No. 2-1: Declaración de Variables

Índice

0. Introducción
1. Problema
2. Solución
3. Discusión de la Solución
4. Práctica: Código T-SQL
5. Conclusiones
6. Glosario
7. Literatura & Enlaces

0. Introducción

Empezamos la segunda serie de recetas T-SQL. En esta serie nos concentraremos en descubrir los artefactos o construcciones programáticos disponibles en el lenguaje Transaccional SQL: declaración de variables, sentencias de selección, ciclos, entre otras más. En esta primera receta trabajaremos con la declaración de variables; operación de importante conocimiento, por ejemplo, en la creación de claves de búsqueda sobre una cadena de caracteres contenida por una columna.

1. Problema

Para simplificar una consulta requerimos de un método de contención de valores reusables en una sentencia T-SQL.

2. Solución

En T-SQL es posible declarar variables. La declaración de una variable se convertirá en el contenedor de valores que podrán ser reutilizados una o más veces dentro de una consulta T-SQL.

3. Discusión de la Solución

La declaración de variables nos sirve como contenedor de valores temporales que pueden ser reutilizados en una sentencia T-SQL. Para declarar una variable seguimos esta sintaxis:

DECLARE @{NombreVariable} Tipo_De_Dato [= {Valor_Inicialización}];

Por ejemplo, un caso concreto sería:

DECLARE @Edad = 31;

-o-

DECLARE @Clave_Busqueda nvarchar(60);
SET @Clave_Busqueda = "Azul";

Notemos que en el segundo caso hemos preferido asignar un valor a la variable @Clave_Busqueda a través de la sentencia SET [2]. (Esto alternativa de declaración era requerimiento sine quo non en versiones anteriores a SQL Server 2008.)

T-SQL permite declarar una variable sin asignar un valor, sin embargo al intentar obtener su valor con la sentencia SELECT, obtendremos NULL:

DECLARE @Clave_Busqueda nvarchar(60);
SELECT @Clave_Busqueda;

4. Práctica: Código T-SQL

Creemos un ejemplo de uso para demostrar el proceso de declaración de variables y su utilidad en la simplificación de sentencias T-SQL.

Consulta: Obtener los nombres de producto que contengan una de estas cadenas Washer o Road en la columna Name de la tabla Product de la base de datos AdventureWorks2012.

DECLARE @clave_busqueda_1 nvarchar(32) = 'Washer';
DECLARE @clave_busqueda_2 nvarchar(32) = 'Road';

SELECT Name AS 'Nombre Producto'
FROM Production.Product
WHERE Name LIKE '%' + @clave_busqueda_1 + '%'
OR Name LIKE '%' + @clave_busqueda_2 + '%';

En la declaración de las dos variables -clave_busqueda_1, y clave_busqueda_2- asignamos las cadenas de caracteres que nos interesa buscar dentro del campo Name. Observamos, además, que en la sentencia LIKE requerimos concatenar el valor de la vas variables entre el comodín % (cfr. Realizar Búsquedas con Comodines) con el operador +:

'%' + @clave_busqueda_1 + '%'

-y-

'%' + @clave_busqueda_2 + '%'


Una vez ejecutemos esta sentencia, obtenemos el resultado (parcial) de la Figura 1:
Declaración de variables para búsquedas
Figura 1. Resultado de búsqueda de nombres de productos.

5. Conclusiones

El uso de variables en una sentencia T-SQL simplifica y promueve la reutilización de variables. La reutilización se alcanza a través del uso del valor contenido en la variable declarada en diferentes locaciones de la sentencia T-SQL. Vimos que su declaración y uso son realmente sencillos si se les compara con la declaración de variables en lenguajes de programación declarativos (como C#). En la próxima receta aprenderemos cómo asignar un valor de una consulta en una variable.

6. Glosario

  • Asignar
  • Consulta
  • Declarar
  • Sentencia
  • Variable

7. Literatura & Enlaces

[1]: SQL Server 2012 T-SQL Recipes - A Problem-Solucion Approach by Jason Brimhall, David Dye, Jonathan Gennick, Andy Roberts, and Wayne Sheffield. Copyright 2012 Jason Brimhall, David Dye, Jonathan Gennick, Andy Roberts, and Wayne Sheffield, 978-1-4302-4200-0.
[2]: SET Statements (Transact-SQL) - http://msdn.microsoft.com/en-us/library/ms190356.aspx
[3]: DECLARE @local_variable (Transact-SQL) - http://msdn.microsoft.com/en-us/library/ms188927.aspx
[4]: Receta T-SQL No. 1-12: Realizar Búsquedas con Comodines | OrtizOL - Experiencias Construcción Software (xCSw) - http://ortizol.blogspot.com/2014/08/receta-t-sql-no-1-12-realizar-busquedas-con-comodines.html


J

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.