Vous êtes sur la page 1sur 9

Investigar los tipos de datos que soporte el SGBD SQL Server en su última versión y

dar 1 ejemplo por cada tipo de datos encontrado

1. A continuación os mostramos los tipos de datos que se pueden definir para este
motor de base de datos (tanto para Microsoft SQL Server como para MSDE):

A. NÚMEROS EXACTOS
Los tipos de datos numéricos exactos son los tipos de datos de SQL Server más comunes utilizados
para almacenar información numérica. Los tipos de datos numéricos aproximados proporcionan
menos precisión y se utilizan con menos frecuencia.

Tipos de datos numéricos que tienen precisión y escala fijas. Los tipos decimal y numeric son
sinónimos y se pueden usar indistintamente. (Se aplica a: SQL Server (SQL Server 2008 a versión
actual), Windows Azure SQL Database (Versión inicial a versión actual).

 BIT.- JDBC bits tipo representa un bit único que puede ser 0 ó 1. Se asigna a un SQL
Server bits tipo.
 TINYINT.- JDBC TINYINT tipo representa un solo byte. Se asigna a un SQL Server
tinyint tipo.
 SMALLINT.- JDBC SMALLINT tipo representa un entero de 16 bits con signo. Se
asigna a un SQL Server smallint tipo.
 INTEGER.- JDBC entero tipo representa un entero de 32 bits con signo. Se asigna a
un SQL Server int tipo.
 Bigint.- JDBC BIGINT tipo representa un entero de 64 bits con signo. Se asigna a un
SQL Server bigint tipo.
 NUMERIC.- JDBC numérico tipo representa un valor decimal de precisión fija que
contiene los valores de precisión idéntica. El numérico tipo se asigna a la SQL Server
numérico tipo.
 DECIMAL.- JDBC DECIMAL tipo representa un valor decimal de precisión fija que
contiene valores de al menos la precisión especifican. El DECIMAL tipo se asigna a
la SQL Server decimal tipo. JDBC DECIMAL tipo también se asigna a la SQL Server
dinero y smallmoney tipos, que son determinados tipos decimales de precisión fija
que se almacenan en 8 y 4 bytes, respectivamente.

Tamaño de almacenamiento
EJEMPLO.- En este ejemplo se crea una tabla con los tipos de datos decimal y numeric. Se insertan
valores en cada columna y los resultados se devuelven con una instrucción SELECT.

El conjunto de resultados es el siguiente.

B. NÚMEROS APROXIMADOS
Los tipos numéricos aproximados de JDBC son REAL, doble, y FLOAT.
 REAL.- JDBC REAL tipo tiene siete dígitos de precisión (precisión simple) y se asigna
directamente a la SQL Server real tipo. (Se aplica a: SQL Server (SQL Server 2008 a versión
actual), Windows Azure SQL Database (Versión inicial a versión actual).
 DOUBLE.- JDBC doble tipo tiene 15 dígitos de precisión (precisión doble) y se asigna a la
SQL Server float tipo. JDBC FLOAT tipo es un sinónimo de doble. Dado que puede haber
confusión entre FLOAT y doble, doble es preferible.

EJEMPLO.- En el ejemplo siguiente se muestra el resultado de usar la función ABS en tres números
distintos.

El conjunto de resultados es el siguiente.


C. FECHA Y HORA

JDBC TIMESTAMP tipo se asigna a la SQL Server datetime y smalldatetime tipos. El


datetime tipo se almacena en dos enteros de 4 bytes. El smalldatetime tipo contiene la misma
información (fecha y hora), pero con menos precisión, en dos enteros pequeños de 2 bytes.
 Tipos de datos de fecha y hora: En la tabla siguiente se muestran los tipos de datos
de fecha y hora de Transact-SQL:

EJEMPLO.- Comparar tipos de datos de fecha y hora: En el siguiente ejemplo se


comparan los resultados de convertir una cadena a cada tipo de datos date y time.
D. CADENA DE CARACTERES
Devuelve el número de caracteres de la expresión de cadena especificada, excluidos los espacios en
blanco finales. Devuelve el número de caracteres de la expresión de cadena especificada, excluidos
los espacios en blanco finales. (Se aplica a: SQL Server (SQL Server 2008 a versión actual),
Windows Azure SQL Database (Versión inicial a versión actual).
 char [ ( n ) ]
Datos de cadena no Unicode de longitud fija. n define la longitud de la cadena y debe ser un
valor entre 1 y 8.000. El tamaño de almacenamiento es de n bytes. El sinónimo de char en
ISO es character.

 varchar [ ( n | max ) ]
Datos de cadena no Unicode de longitud variable. n define la longitud de la cadena y puede
ser un valor entre 1 y 8.000.max indica que el tamaño máximo de almacenamiento es de
2^31-1 bytes (2 GB). El tamaño de almacenamiento es la longitud real de los datos
especificados + 2 bytes. Los sinónimos ISO
de varchar son char varying o character varying.

EJEMPLO.- En el ejemplo siguiente se convierten dos columnas a tipos de caracteres y se aplica un


estilo que aplica un formato concreto a los datos mostrados. Un tipo money se convierte en datos de
caracteres y se aplica el estilo 1, que muestra los valores con comas cada tres dígitos a la izquierda
del separador decimal y dos dígitos a la derecha del separador decimal. Un tipo datetime se convierte
en datos de caracteres y se aplica el estilo 3, que muestra los datos en el formato dd/mm/aa. En la
cláusula WHERE, un tipo money se convierte en un tipo de caracteres para realizar una operación de
comparación de cadenas.
El conjunto de resultados es el siguiente.

E. CADENAS DE CARACTERES UNICODE

Devuelve el carácter Unicode correspondiente al código entero dado, tal como se define en
el estándar Unicode (Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows
Azure SQL Database (Versión inicial a versión actual).

 nchar [ ( n ) ]
Datos de cadena Unicode de longitud fija. n define la longitud de la cadena y debe
ser un valor entre 1 y 4.000. El tamaño de almacenamiento es dos veces n bytes. Si la
página de códigos de la intercalación utiliza caracteres de doble byte, el tamaño de
almacenamiento sigue siendo de n bytes. Dependiendo de la cadena, el tamaño de
almacenamiento de n bytes puede ser inferior al valor especificado para n. Los
sinónimos ISO de nchar son national char y national character..
 nvarchar [ ( n | max ) ]
Datos de cadena Unicode de longitud variable. n define la longitud de la cadena y
puede ser un valor entre 1 y 4.000. maxindica que el tamaño máximo de
almacenamiento es de 2^31-1 bytes (2 GB). El tamaño de almacenamiento, en bytes,
es dos veces la longitud real de los datos especificados + 2 bytes. Los sinónimos ISO
de nvarchar son national char varying ynational character varying.

EJEMPLO.- Usar NCHAR y UNICODE: En el siguiente ejemplo se utilizan las


funciones UNICODE y NCHAR para imprimir el valor UNICODE y NCHAR (carácter
Unicode) del segundo carácter de la cadena de caracteres København, y para imprimir el
segundo carácter real, ø.

El conjunto de resultados es el siguiente


F. CADENAS BINARIAS

 binary [ (n) ] Datos binarios de longitud fija con una longitud de n bytes, donde n es
un valor que oscila entre 1 y 8000. El tamaño de almacenamiento es de n bytes.
 varbinary [ (n | max) ] Datos binarios de longitud variable. n puede ser un valor de
1 a 8000. max indica que el tamaño máximo de almacenamiento es de 2^31-1
bytes. El tamaño de almacenamiento es la longitud real de los datos especificados +
2 bytes. Los datos especificados pueden tener una longitud de 0 bytes. El sinónimo
de ANSI SQL para varbinary es binary varying.

Cuando se convierten datos de un tipo de datos de cadena


(char, varchar, nchar, nvarchar, binary, varbinary, text, ntext o image) a un tipo de
datos binary o varbinary de diferente longitud, SQL Serverrellena o trunca los datos por la
derecha. Cuando se convierten a binary o varbinary otros tipos de datos, los datos se
rellenan o se truncan por la izquierda. El relleno se realiza con ceros hexadecimales.

La conversión de datos a tipos de datos binary y varbinary es útil si el dato binary es la


forma más sencilla de mover datos. Cuando se convierte un valor de cualquier tipo a un valor
binario de tamaño suficiente y, después, se convierte de nuevo al tipo original, el resultado
es el mismo valor si ambas conversiones usan la misma versión de SQL Server. La
representación binaria de un valor puede cambiar entre versiones deSQL Server.

Puede convertir tipos de datos int, smallint y tinyint en binary o varbinary, pero si
convierte de nuevo el valor binary a un valor entero, este será distinto del valor entero
original si se ha producido un truncamiento.

EJEMPLO.- la siguiente instrucción SELECT muestra que el valor entero 123456 se


almacena normalmente como un valor 0x0001e240 binario:

El siguiente lote muestra que este truncamiento puede afectar a las operaciones aritméticas
sin generar un error:
El resultado final es 57921 y no 123457 .

G. OTROS TIPOS DE DATOS

 Cursor.-Un tipo de datos para las variables o para los parámetros de resultado de
los procedimientos almacenados que contiene una referencia a un cursor.( Se aplica
a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database
(Versión inicial a versión actual).
Comentarios
Las operaciones a las que pueden hacer referencia las variables y parámetros que tienen un
tipo de datos cursor son:
 Las instrucciones DECLARE @local_variable y SET @local_variable.
 Las instrucciones del cursor OPEN, FETCH, CLOSE y DEALLOCATE.
 Los parámetros de resultado de procedimientos almacenados.
 La función CURSOR_STATUS.
 Los procedimientos almacenados del
sistema sp_cursor_list, sp_describe_cursor, sp_describe_cursor_tables y sp_describ
e_cursor_columns.
La columna de salida cursor_name de sp_cursor_list y sp_describe_cursor devuelve
el nombre de la variable de cursor.
Las variables creadas con el tipo de datos cursor aceptan valores NULL.
El tipo de datos cursor no se puede utilizar para una columna en una instrucción
CREATE TABLE.

 Rowversion.- Es un tipo de datos que expone números binarios únicos generados


automáticamente en una base de datos. rowversion suele utilizarse como mecanismo
para marcar la versión de las filas de la tabla. El tamaño de almacenamiento es de 8
bytes. El tipo de datos rowversion es simplemente un número que se incrementa y no
conserva una fecha o una hora. Para registrar una fecha o una hora, use un tipo de
datos datetime2.

En una instrucción CREATE TABLE o ALTER TABLE, no tiene que especificar ningún
nombre de columna para el tipo de datostimestamp, por ejemplo:

Si no especifica un nombre de columna, el Motor de base de datos de SQL Server genera el


nombre de columna timestamp; sin embargo, el sinónimo de rowversion no sigue este
comportamiento. Cuando utiliza rowversion, debe especificar un nombre de columna, por
ejemplo:
 Hierarchyid.- El tipo de datos del sistema de hierarchyid es de longitud
variable. Use hierarchyid para representar la posición en una jerarquía. Una columna
de tipo hierarchyid no representa automáticamente un árbol. Dependerá de la
aplicación generar y asignar los valores hierarchyid de tal forma que la relación
deseada entre las filas se refleje en los valores.
Un valor del tipo de datos hierarchyid representa una posición en una jerarquía de
árbol. Los valores de hierarchyid tienen las siguientes propiedades.
 Muy compactos
El número medio de bits necesarios para representar un nodo en un árbol con n nodos
depende del promedio de nodos secundarios (el promedio de elementos secundarios
de un nodo). Para multiplicadores de salida pequeños (0-7), el tamaño es
aproximadamente 6*logAn bits, donde A es el promedio de nodos secundarios. Un
nodo en una jerarquía organizativa de 100.000 personas con un promedio de nodos
secundarios de 6 niveles supone aproximadamente 38 bits. Esto se redondea a 40 bits
(o 5 bytes) para el almacenamiento.
 La comparación se realiza con prioridad a la profundidad
Dados dos valores hierarchyida y b, a<b quiere decir que a viene antes que b en un
corte transversal de prioridad a la profundidad del árbol. Los índices de los tipos de
datos hierarchyid están en orden con prioridad a la profundidad y los nodos cercanos
entre sí en un corte transversal de prioridad a la profundidad se almacenan casi uno
junto a otro. Por ejemplo, los elementos secundarios de un registro se almacenan
adyacentes a ese registro. Para obtener más información, consulte Datos jerárquicos
(SQL Server).
 Compatibilidad con inserciones y eliminaciones arbitrarias
Con el método GetDescendant siempre es posible generar un miembro del mismo
nivel a la derecha de cualquier nodo determinado, a la izquierda de cualquier nodo
determinado, o entre dos miembros cualesquiera del mismo nivel. Se mantiene la
propiedad comparison cuando se inserta o elimina un número arbitrario de nodos de
la jerarquía. La mayoría de las inserciones y eliminaciones conservan la propiedad
compactness. Sin embargo, las inserciones entre dos nodos generarán valores
hierarchyid con una representación ligeramente menos compacta.
 La codificación usada en el tipo hierarchyid está limitada a 892 bytes. Por
consiguiente, el tipo hierarchyid no podrá representar los nodos con demasiados
niveles en su representación como para caber en los 892 bytes.

El tipo hierarchyid está disponible para los clientes CLR como el tipo de
datos SqlHierarchyId. (Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows
Azure SQL Database (Versión inicial a versión actual).

 uniqueidentifier
Una columna o una variable local de tipo de datos uniqueidentifier se puede inicializar en un
valor de las siguiente formas:
 Mediante la función NEWID.
 Mediante la conversión a partir de una constante de cadena con el formato xxxxxxxx-
xxxx-xxxx-xxxx-xxxxxxxxxxxx, donde cada x es un dígito hexadecimal en el
intervalo 0-9 o a-f. Por ejemplo, 6F9619FF-8B86-D011-B42D-00C04FC964FF es un
valor uniqueidentifier válido.
Con los valores uniqueidentifier se pueden utilizar operadores de comparación. No obstante,
no se implementa la ordenación mediante la comparación de los patrones de bits de los dos
valores. Las únicas operaciones que se pueden realizar con un valor uniqueidentifier son
comparaciones (=, <>, <, >, <=, >=) y comprobaciones para NULL (IS NULL e IS NOT
NULL). No es posible utilizar otros operadores aritméticos. Con el tipo de
datos uniqueidentifier, se pueden utilizar todas las propiedades y restricciones de columna,
excepto IDENTITY.
La replicación de mezcla y la replicación transaccional con suscripciones de actualización
usan columnas uniqueidentifier para garantizar que las filas se identifican de forma única en
varias copias de la tabla.

EJEMPLO.- En el ejemplo siguiente se convierte un valor uniqueidentifier a un tipo de


datos char.

En el ejemplo siguiente se muestra el truncamiento de los datos cuando el valor es demasiado


largo para el tipo de datos al que se va a convertir. Puesto que el tipo uniqueidentifier está
limitado a 36 caracteres, se truncan los caracteres que superan esa longitud.

El conjunto de resultados es el siguiente.

Vous aimerez peut-être aussi