sábado, 5 de febrero de 2011

Variables en Transact SQL

Continuando con esta serie de tutoriales hoy veremos algo muy importante que son las variables en Transact.

La base de datos que usare es la misma que he venido trabajando en el canal de youtube asi que sera esta la estructura que tendra aunque puede ser que cambie mas adelante agregando mas tablas pero por el momento esta bien para lo que haremos.

Bien ya hecha esa base de datos con sus relacionas podemos empezar a trabajar.

En Transact SQL podemos asignar valores a una variable de varias formas:

A través de la instruncción set , Utilizando una sentencia SELECT , Realizando un FETCH de un cursor.

El siguiente ejemplo muestra como asignar una variable utilizando la instrucción SET.

El siguiente ejemplo muestra como asignar variables utilizando una sentencia SELECT.

Un punto a tener en cuenta cuando asignamos variables de este modo, es que si la consulta SELECT devuelve más de un registro, las variables quedarán asignadas con los valores de la última fila devuelta. Por úlitmo veamos como asignar variables a través de un cursor.

Veremos los cursores con más detalle más adelante


Tipos de datos en Transact SQL

Siguiendo con el mini curso de Transact hoy veremos los tipos de datos ya que esto es fundamental saberlo mas si estamos comenzando con esta onda .

Cuando definimos una tabla, variable o constante debemos asignar un tipo de dato que indica los posibles valores. El tipo de datos define el formato de almacenamiento, espacio que de disco-memoria que va a ocupar un campo o variable, restricciones y rango de valores validos.

Transact SQL proporciona una variedad predefinida de tipos de datos . Casi todos los tipos de datos manejados por Transact SQL son similares a los soportados por SQL.

Debemos acostumbrarnos a usar los tipos de datos que son para cada base de datos que tengamos que desarrollar ya que a nivel profesional esto es fundamental ya que no podemos tener perdida de datos ni tampoco gasto de memoria innecesaria.

Tambien tenemos los tipo de caracter algunos tipos de datos ya los hemos usado en algunas post anteriores

Tipo de datos XML.

XML.Una de las grandes mejoras que incorpora SQL Server 2005 es el soporte nativo para XML. Como podemos deducir, este tipo de datos se utiliza para almacenar XML.


Otros tipos de datos.

Tipos de datos binarios.

Binary. Se utiliza para almacenar datos binarios de longitud fija, con una longitud máxima de 8000 bytes.

Varbinary. Se utiliza para almacenar datos binarios de longitud variable, con una longitud máxima de 8000 bytes..Es muy similar a binary, salvo que varbinary utiliza menos espacio en disco.

Varbinary(max).Igual que varbinary, pero puede almacenar 231-1 bytes

UniqueIdentifier. Se utiliza para identificadores únicos. Para generar identificadores únicos debemos utilizar la función NEWID().

Obtendremos la siguiente salida: 46141D79-102C-4C29-A620-792EA0208637

Sql_Variant.Permite almacenar valores de diferentes tipos de datos. No puede almacena varchar(max), xml, timestamp y tipos de datos definidos por el usuario.


comenten no sean bayuncos ....

viernes, 4 de febrero de 2011

Fundamentos de Transact SQL


Bien continuando con Transact SQL hoy veremos algunos fundamentos que son base para entender este complejo lengu

Como introducción vamos a ver algunos elementos y conceptos básicos del lenguaje.

Transact SQL no es CASE-SENSITIVE, es decir, no diferencia mayúsculas de minúsculas como otros lenguajes de programación como C o Java.

Un comentario es una aclaración que el programador incluye en el código. Son soportados 2 estilos de comentarios, el de línea simple y de multilínea, para lo cual son empleados ciertos caracters especiales como son:
-- Para un comentario de linea simple

/* ... */ Para un comentario de varias líneas

Un literal es un valor fijo de tipo numérico, caracter, cadena o lógico no representado por un identificador (es un valor explícito).

Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones. En Transact SQL los identificadores de variables deben comenzar por el caracter @, es decir, el nombre de una variable debe comenzar por @.Para declarar variables en Transact SQL debemos utilizar la palabra clave declare, seguido del identificador y tipo de datos de la variable.

Scripts y lotes.

Un script de Transact SQL es un conjunto de sentencias de Transact SQL en formato de texto plano que se ejecutan en un servidor de SQL Server.

Un script está compuesto por uno o varios lotes. Un lote delimita el alcance de las variables y sentencias del script. Dentro de un mismo script se diferencian los diferentes lotes a través de las instrucción GO.

En ocasiones es necesario separar las sentencias en varios lotes, porque Transact SQL no permite la ejecución de ciertos comandos en el mismo lote, si bien normalmente también se utilizan los lotes para realizar separaciones lógicas dentro del script.

martes, 1 de febrero de 2011

Iterar un HashMap en Java

Buenos hace poco me tope con una duda que era un HashMap?????? y pues ni modo nunca se sabe todo menos en el mundo de la programacion tuve que ir a preguntarle a google si sabia y pues bien me saco de la gran duda .


Un HashMap es una colección de objetos que asocia claves con valores. La operación básica de este tipo de estructura es la búsqueda, conociendo la clave se obtiene el valor de forma rápida y eficiente. El HashMap aplica la función Hash a la clave para obtener el número que emplea como índice del array para así localizar el valor deseado.

El siguiente código es un ejemplo de cómo iterar un HashMap :
Si intentamos añadir otro elemento con una clave ya existente, sobreescribe el valor. Ya que no puede haber elementos duplicados.

Para recorrerlo nos apoyaremos sobre un Iterator que será el puntero encargado en recorrer los elementos del mapa. Obtendremos un iterador sobre la estructura invocando los métodos .entrySet() e .iterator(). Usar iteradores permite separar la lógica de la clase de la lógica de la iteración. Los iteradores tienen un comportamiento similar a los enumerados.

Para mover el iterador utilizaremos el método .next() y si queremos comprobar que el iterador ha llegado al final de la estructura tenemos el método .hasNext()