Sie sind auf Seite 1von 10

Los Tipos De Datos De SQL Server Se Organizan En Las Siguientes Categoras: Numricos exactos Cadenas de caracteres Unicode Numricos

aproximados Cadenas binarias Fecha y hora Otros tipos de datos Cadenas de caracteres INT, BIGINT, SMALLINT Y TINYINT Tipos de datos numricos exactos que utilizan datos enteros. Tipo de datos bigint Intervalo De -2^63 (-9.223.372.036.854.775.808) a 2^63-1 (9.223.372.036.854.775.807) De -2^31 (-2.147.483.648) (2.147.483.647) a Almacenamiento 8 bytes

int

2^31-1 4 bytes

smallint tinyint

De -2^15 (-32.768) a 2^15-1 (32.767) De 0 a 255

2 bytes 1 byte

El tipo de datos int es el principal tipo de datos de valores enteros de SQL Server. El tipo de datos bigint est pensado para utilizarse cuando los valores enteros pueden exceder el intervalo admitido por el tipo de datos int. bigint se encuentra entre smallmoney e int en el grfico de prioridad de tipo de datos. Las funciones solo devuelven bigint si la expresin de parmetro es un tipo de datos bigint. SQL Server no promueve automticamente otros tipos de datos enteros (tinyint, smallint e int) en bigint. Cuando se convierten implcitamente enteros en un tipo de datos de caracteres, si el entero es demasiado grande para ajustarse al campo de carcter, SQL Server escribe el carcter ASCII 42, el asterisco (*). Las constantes de enteros mayores que 2.147.483.647 se convierten en el tipo de datos decimal, no en el tipo de datos bigint. En el ejemplo siguiente se muestra que cuando se supera el valor de umbral, el tipo de datos del resultado cambia de int a decimal.

SELECT 2147483647 / 2 AS Result1, 2147483649 / 2 AS Result2 ; El conjunto de resultados es el siguiente. Result1 Result2 1073741823 1073741824.500000 DECIMAL Y NUMERIC Tipos de datos numricos que tienen precisin y escala fijas. decimal [ (p[ ,s] )] y numeric[ (p[ ,s] )] Nmeros de precisin y escala fijas. Cuando se utiliza la precisin mxima, los valores vlidos se sitan entre - 10^38 +1 y 10^38 - 1. Los sinnimos de ISO paradecimal son dec y dec(p, s). numeric es funcionalmente equivalente a decimal. p (precisin) El nmero total mximo de dgitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal. La precisin debe ser un valor comprendido entre 1 y la precisin mxima de 38. La precisin predeterminada es 18. s (escala) El nmero mximo de dgitos decimales que se puede almacenar a la derecha del separador decimal. La escala debe ser un valor comprendido entre 0 y p. Solo es posible especificar la escala si se ha especificado la precisin. La escala predeterminada es 0; por lo tanto, 0 <= s <= p. Los tamaos de almacenamiento mximo varan segn la precisin. Precisin 1-9 10-19 20-28 29-38 Bytes de almacenamiento 5 9 13 17

En el caso de los tipos de datos decimal y numeric, SQL Server considera cada combinacin especfica de precisin y escala como un tipo de datos distinto. Por ejemplo,decimal(5,5) y decimal(5,0) se consideran tipos de datos diferentes. En las instrucciones Transact-SQL, una constante con un separador decimal se convierte automticamente a un valor de datos numeric, con la precisin y escala mnimas necesarias. Por ejemplo, la constante 12.345 se convierte a un valor numeric con una precisin de 5 y una escala de 3.

La conversin de valores decimal o numeric a valores float o real puede provocar alguna prdida de precisin. La conversin de valores int, smallint, tinyint, float, real,money o smallmoney a valores decimal o numeric puede provocar un desbordamiento. De forma predeterminada, SQL Server usa el redondeo cuando convierte un nmero a un valor decimal o numeric con una precisin y una escala inferiores. Sin embargo, si la opcin SET ARITHABORT est establecida en ON, SQL Server genera un error cuando se produce un desbordamiento. La prdida de precisin y escala no es suficiente para generar un error. La conversin de los valores float que utilizan la notacin cientfica a decimal o numeric se restringe nicamente a los valores con una precisin de 17 dgitos. Cualquier valor con una precisin mayor de 17 se redondea a cero. BIT Tipo de datos entero que puede aceptar los valores 1, 0 o NULL. Motor de base de datos de SQL Server optimiza el almacenamiento de las columnas de tipo bit. Si una tabla contiene 8 columnas o menos de tipo bit, stas se almacenan como 1 byte. Si hay entre 9 y 16 columnas de tipo bit, se almacenan como 2 bytes, y as sucesivamente. Los valores de cadena TRUE y FALSE se pueden convertir en valores de tipo bit: TRUE se convierte en 1 y FALSE en 0. La conversin a bit promueve cualquier valor distinto de cero a uno. MONEY Y SMALLMONEY Tipos de datos que representan valores monetarios o de moneda. Tipo de datos money Intervalo Almacenamiento

De -922,337,203,685.477,5808 8 bytes a 922,337,203,685.477,5807 De 214.748,3648 214.748,3647 a 4 bytes

smallmoney

Los tipos de datos money y smallmoney tienen una precisin de una diezmilsima de las unidades monetarias que representan. Use un punto para separar las unidades parciales de moneda, como cntimos, de las unidades completas de moneda. Por ejemplo, 2.15 puede especificar 2 dlares y 15 centavos. Estos tipos de datos pueden usar alguno de los siguientes smbolos de moneda.

No es necesario incluir los datos de moneda entre comillas simples ('). Es importante recordar que aunque es posible especificar valores monetarios precedidos de un smbolo de moneda, SQL Server no almacena ninguna informacin de moneda asociada con el smbolo, solo almacena el valor numrico.

FLOAT Y REAL Tipos de datos numricos y aproximados que se utilizan con datos numricos de coma flotante. Los datos de coma flotante son aproximados; por tanto, no todos los valores del rango del tipo de datos se pueden representar con exactitud. Tipo de datos float Intervalo Almacenamiento

De - 1,79E+308 a -2,23E-308, 0 y Depende del valor de 2,23E-308 a 1,79E+308 de n. De - 3,40E + 38 a -1,18E - 38, 0 y 4 Bytes de 1,18E - 38 a 3,40E + 38

real

float [ (n) ] Donde n es el nmero de bits que se utilizan para almacenar la mantisa del nmero float en notacin cientfica y, por tanto, dicta su precisin y el tamao de almacenamiento. Si se especifica n, debe ser un valor entre 1 y 53. El valor predeterminado de n es 53. Valor del parmetro n 1-24 25-53 Tamao de almacenamiento 4 bytes 8 bytes

Precisin 7 dgitos 15 dgitos

El tipo de datos float[(n)] de SQL Server cumple con el estndar ISO para todos los valores de n desde 1 hasta 53. El sinnimo de double precision es el tipo float(53). Los valores float se truncan cuando se convierten a cualquier tipo de entero. Cuando convierte de valores float o real a datos de carcter, suele resultar ms til la funcin de cadena STR que CAST( ). Esto se debe a que STR permite ms control sobre el formato. Para obtener ms informacin, vea STR (Transact-SQL) y Funciones integradas (Transact-SQL). La conversin de los valores float que utilizan la notacin cientfica a decimal o numeric se restringe nicamente a los valores con una precisin de 17 dgitos. Cualquier valor con una precisin mayor de 17 se redondea a cero.

DATE Define una fecha. Propiedad Sintaxis Uso Valor date DECLARE @MyDate date CREATE TABLE Table1 ( Column1 date ) AAAA-MM-DD Para obtener ms informacin, vea la seccin "Compatibilidad con versiones anteriores de los clientes de niveles inferiores" ms adelante. De 0001-01-01 a 9999-12-31 Del 1 de enero del ao 1 despus de Cristo al 31 de diciembre de 9999 AAAA es una cifra de cuatro dgitos comprendida entre 0001 y 9999 que representa un ao. MM es una cifra de dos dgitos comprendida entre 01 y 12 que representa un mes del ao especificado. DD es una cifra de dos dgitos comprendida entre 01 y 31 dependiendo del mes, que representa un da del mes especificado. 10 posiciones 10, 0 3 bytes, fijo 1, fecha de almacenes de enteros de 3 bytes. Un da 1900-01-01 Este valor se utiliza para la parte de fecha anexada para la conversin implcita de time a datetime2 odatetimeoffset. Gregoriano

Formato de literal de cadena predeterminado (se usa para el cliente de nivel inferior) Intervalo

Intervalos de elementos

Longitud en caracteres Precisin, escala Tamao de almacenamiento Estructura de almacenamiento Precisin Valor predeterminado

Calendario

Precisin de fracciones de No segundo definida por el usuario Conservacin y reconocimiento del ajuste de zona horaria No

Reconocimiento del horario de No verano CHAR Y VARCHAR Son tipos de datos de cadena de longitud fija o de longitud variable. 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 tamao de almacenamiento es de n bytes. El sinnimo 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 tamao mximo de almacenamiento es de 2^31-1 bytes (2 GB). El tamao de almacenamiento es la longitud real de los datos especificados + 2 bytes. Los sinnimos ISO de varchar sonchar varying o character varying. Cuando no se especifica n en una instruccin de definicin de datos o declaracin de variable, la longitud predeterminada es 1. Cuando no se especifica n al utilizar las funciones CAST y CONVERT, la longitud predeterminada es 30. A los objetos que utilizan char o varchar se les asigna la intercalacin predeterminada de la base de datos, a menos que se asigne una intercalacin especfica mediante la clusula COLLATE. La intercalacin controla la pgina de cdigos utilizada para almacenar los datos de caracteres. Si tiene sitios que admiten varios idiomas, considere el uso de tipos de datos Unicode nchar o nvarchar para reducir al mnimo los problemas de conversin de caracteres.Si usa char o varchar, siga estas recomendaciones: Utilice char cuando los tamaos de las entradas de datos de columna sean coherentes. Utilice varchar cuando los tamaos de las entradas de datos de columna varen de forma considerable. Utilice varchar(max) cuando los tamaos de las entradas de datos de columna varen de forma considerable y se pudieran superar los 8.000 bytes.

Si SET ANSI_PADDING es OFF cuando se ejecuta CREATE TABLE o ALTER TABLE, una columna de tipo char definida como NULL se trata como si fuera de tipo varchar. Si la pgina de cdigos de la intercalacin utiliza caracteres de doble byte, el tamao de almacenamiento sigue siendo de n bytes. Dependiendo de la cadena de caracteres, el tamao de almacenamiento de n bytes puede ser inferior a n caracteres. Cuando se convierten expresiones de caracteres a un tipo de datos de caracteres de un tamao distinto, se truncan los valores que son demasiado grandes para el nuevo tipo de datos. El tipo uniqueidentifier se considera un tipo de carcter para la conversin desde una expresin de caracteres y, por tanto, est sujeto a las reglas de truncamiento para la conversin a un tipo de carcter. Vea la seccin Ejemplos que aparece ms adelante. Cuando una expresin de caracteres se convierte a una expresin de caracteres de un tipo de datos o tamao distinto (como de char(5) a varchar(5) o de char(20) achar(15)), se asigna la intercalacin del valor de entrada al valor convertido. Si una expresin que no es de carcter se convierte a un tipo de datos de carcter, se asigna al valor convertido la intercalacin predeterminada de la base de datos actual. En cualquiera de los casos, puede asignar una intercalacin especfica mediante la clusulaCOLLATE. Las expresiones de carcter que se convierten a un tipo de datos numeric aproximado pueden incluir una notacin exponencial opcional (una e minscula o una E mayscula seguida de un signo ms (+) o menos (-) opcional y un nmero). Las expresiones de carcter que se convierten a un tipo de datos numeric exacto se componen de dgitos, un separador decimal y un signo ms (+) o menos (-) opcional.Los espacios en blanco iniciales se omiten. En la cadena no se permiten los separadores de coma (como el separador de miles en algunas representaciones de 123,456.00). Las expresiones de caracteres que se convierten a los tipos de datos money o smallmoney pueden incluir tambin un separador decimal opcional y un smbolo de dlar ($).Los separadores de coma (por ejemplo, $123,456.00) estn permitidos. NTEXT, TEXT E IMAGE Importante Los tipos de datos ntext, text e image se quitarn en una versin futura de Microsoft SQL Server. Evite su uso en nuevos trabajos de desarrollo y piense en modificar las aplicaciones que los usan actualmente. Utilice nvarchar(max), varchar(max) y varbinary(max) en su lugar. Tipos de datos de longitud fija y variable para almacenar valores de gran tamao con datos de caracteres y binarios Unicode y no Unicode. Los datos Unicode utilizan el juego de caracteres UNICODE UCS-2.

ntext Datos Unicode de longitud variable con una longitud mxima de cadena de 2^30 - 1 (1.073.741.823) bytes. El tamao de almacenamiento, en bytes, es dos veces la longitud de cadena especificada. El sinnimo de ntext en ISO es national text. text Datos no Unicode de longitud variable en la pgina de cdigos del servidor y con una longitud mxima de cadena de 2^31-1 (2.147.483.647). Cuando la pgina de cdigos del servidor utiliza caracteres de doble byte, el almacenamiento sigue siendo de 2.147.483.647 bytes. Dependiendo de la cadena de caracteres, el espacio de almacenamiento puede ser inferior a 2.147.483.647 bytes. image Datos binarios de longitud variable desde 0 hasta 2^31-1 (2.147.483.647) bytes. BINARY Y VARBINARY Tipos de datos binarios de longitud fija o variable. binary [ ( n ) ] Datos binarios de longitud fija con una longitud de n bytes, donde n es un valor que oscila entre 1 y 8.000. El tamao de almacenamiento es de n bytes. varbinary [ ( n | max) ] Datos binarios de longitud variable. n puede ser un valor de 1 a 8.000. max indica que el tamao mximo de almacenamiento es de 2^31-1 bytes. El tamao de almacenamiento es la longitud real de los datos especificados + 2 bytes. Los datos especificados pueden tener una longitud de 0 bytes. El sinnimo de ANSI SQL paravarbinary es binary varying. Cuando no se especifica el argumento n en una instruccin de definicin de datos o de declaracin de variable, la longitud predeterminada es 1. Cuando no se especifica ncon la funcin CAST, la longitud predeterminada es 30. Utilice binary cuando los tamaos de las entradas de datos de columna sean coherentes. Use varbinary cuando los tamaos de las entradas de datos de columna varen considerablemente. Use varbinary(max) cuando las entradas de datos de columna superen los 8.000 bytes. 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 varbinaryde diferente longitud, SQL Server rellena o trunca los datos de 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 conversin de datos a tipos de datos binary y varbinary es til si el dato binary es la forma ms sencilla de mover datos. Cuando se convierte un valor de cualquier tipo a un valor binario de tamao suficiente y, a continuacin, se convierte de nuevo al tipo original,

el resultado ser el mismo valor si ambas conversiones utilizan la misma versin de SQL Server. La representacin binaria de un valor puede cambiar entre versiones de SQL Server. Puede convertir tipos de datos int, smallint y tinyint a 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. Por ejemplo, la siguiente instruccin SELECT muestra que el valor entero 123456 se almacena normalmente como un valor0x0001e240 binario:

Das könnte Ihnen auch gefallen