Está en la página 1de 12
SQL SERVER 2008 [_caTeGoRIA | TIPODE DATO | Binary Binary Varbinary Image Char Character Varchar Text Datetime ‘Smalidatotime Decimal ‘Numeric Float Real Bigint Int Smallint Tinyint Money ‘Smalimoney Bit Cursor Timestamp Uniqueidenttier ‘SQL_variant Table Nehar Unicode varchar Ntext Date time Floatingpoint Monetary Special TIPO DE DATOS > SQL_VARIANT: Tipo de datos que almacena valores de varios tipos de datos admitidos en SQL Server. sql_variant Sql_variant puede utiizarse en columnas, parémetros, variables y valores devueltos de funciones definidas por el usuario. Sql_variant permite que estos objetos de base de datos admitan valores de otros tipos de datos. Una columna de tipo sql_variant puede contener filas de tipos de datos diferentes, puede almacenar valores int, binary y char. Los tipos de valores que no se pueden almacenar mediante sql_variant son: Sees varchar(max) | varbinary(max) nvarchar(max) Xml | Text Ntext Image Timestamp ‘sql_variant Geography Hierarchyid Geometry ® Saql_variant puede tener una longitud maxima de 8.016 bytes. Esto incluye la informacion y el valor de tipo base. La longitud maxima del tipo base real es 8.000 bytes. El tipo de datos sql_variant pertenece a la parte superior de la lista de jerarquias de tipos de datos para conversién. En las comparaciones de sql_variant, el orden de la jerarquia del tipo de datos SL Server se agrupa en familias de tipos de datos. ‘sql_variant ‘sql_variant datetime2 fecha y hora Datetimeoffset Fecha y hora Datetime fecha y hora Smalldatetime fecha y hora Date fecha y hora Time fecha y hora Valores numéricos Float aproximados Valores numéricos eal aproximados Decimal Valor numérico exacto Money Valor numérico exacto Smallmoney Valor numérico exacto Bigint Valor numérico exacto int Valor numérico exacto Smallint Valor numérico exacto Tinyint Valor numérico exacto Bit Valor numérico exacto Nvarchar Unicode Nehar Unicode Varchar Unicode Char Unicode Varbinary Binario Binary Binario Uniqueidentifier Uniqueidentifier > INT, BIGINT, SMALLINT Y TINYINT Son tipos de datos numéricos exactos que utilizan datos enteros. fis aT DATOS Ca ENTO De -2°63 (-9.229.372.096.654.775.808) a 2°63-1 Bigint | (9.223.372.036.854.775.807) 8 bytes De -2431 (-2.147.483.648) a 2°31-1 Int | (2.147.483.647) sibytes ‘Smallint | De -2"15 (-32.768) a 25-1 (92.767) 2 bytes Tinyint | De 0 a 255 {byte & INT: Es el principal tipo de datos de valores enteros de SQL Server. # BIGINT: Esta se usa cuando los valores enteros pueden exceder el intervalo admitido por el tipo de dato INT. > curso: Un tipo de datos para las variables o para los pardmetros de resultado de los procedimientos almacenados que contiene una referencia a un cursor. Las variables creadas con el tipo de datos cursor aceptan NULL. 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 pardmetros de resultado de procedimientos almacenados. 48 La funcién CURSOR_STATUS. '® Los procedimientos almacenados del sistema sp_cursor_list, sp_describe_cursor, sp_descrive_cursor_tables y sp_describe_cursor_columns. > DECIMAL Y NUMERIC Tipos de datos numéricos que tienen precisién y escala fijas. DECIMAL [ (p[,s] Jy NUMERIC [(p[ ,s] )] Cuando se utiliza la precisién maxima, los valores validos se situan entre - 10938 +1 y 10°38 - 1. Los sinénimos de ISO para decimal son de tipo dec y dec(p, s). numeric es funcionalmente equivalente a decimal. El numero total maximo de digitos decimales que se puede almacenar, tanto a la izquierda como a la derecha del separador decimal, puede ser a’ 48 La precision debe ser un valor comprendido entre 1 y la precision maxima de 38. La precision predeterminada es 18. *® La escala debe ser un valor comprendido entre 0 y p. Sdlo es posible especificar la escala si se ha especificado la precisién. La escala predeterminada es 0; por lo tanto, 0 <= s <= p. Los tamafios de almacenamiento maximo varian, segun la precision. | PRECISION | BYTES DE ALMACENAMIENTO_ 1-9 5 10-19 9 20-28 13 29-38 fe > MONEY Y SMALLMONEY: Tipos de datos que representan valores monetarios o de moneda. TIPO DE yes ussite) MACENAMIENTO De -922,337,203,685.477,5808 2 Money | 922,337,203,685.477,5807 ores ‘Smallmoney | De - 214,748,648 a 214.748,3647 4 bytes Los tipos de datos money y smallmoney tienen una precisién de una diezmilésima de las unidades monetarias que representan. > FLOAT Y REAL Tipos de datos numéricos y aproximados que se utiizan con datos numéricos de coma flotante. Los datos de coma flotante son aproximados, no todos los valores dal intervalo del tipo de datos se pueden representar con exactitud. TIPO DE 5 INTERVALO EVENT Xeno) Float | D&~ 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 | Depende del valor de a 1,79E+308 n. De -3,40E + 38a -1,18E - 38, Oy de 1,18 - 38 Rea ae. ob 4 Byles ® FLOATI (n) 1 :Donde n es el nimero de bits que se utiizan para almacenar la mantisa del némero float en notacién cientifica y dicta su precision y el tamafo de almacenamiento.Si se especifica n, debe ser un valor entre 1 y 53. El valor predeterminado den es 53. 1-24 7 digitos 4 bytes 25-53 | 15 digitos 8 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 tamario de almacenamiento es de n bytes. VARBINARY[ (n1| max) ] Datos binarios de longitud variable. n puede ser un valor que oscila entre 1 y 8.000. max indica que el tamafio maximo de almacenamiento es de 2"31-1 bytes.El tamafio de almacenamiento es la longitud real de los datos especificados + 2 bytes. Los datos especificados pueden tener una longitud de 0 bytes. Cuando no se especitica el argumento n con la funcién CAST, la longitud predeterminada es 30. ® Utilice binary cuando los tamarios de las entradas de datos de columna sean coherentes. 48 Utilice varbinary cuando los tamajos de las entradas de datos de columna varien considerablemente. + Utilice varbinary(max) cuando las entradas de datos de columna superen los 8.000 bytes. > NCHAR Y NVARCHAR Tipos de datos de caracteres, para datos Unicode de longitud fija, nchar, o variable, varchar, y que utilizan el juego de caracteres UNICODE UCS-2. NCHAR[(n)] Datos de cardcter Unicode de longitud fija, con n caracteres. n debe estar comprendido entre 1 y 4.000. El tamafo de almacenamiento es dos veces n bytes. NVARCHART (n | max )] Datos de cardcter Unicode de longitud variable. N puede ser un valor comprendido entre 1 y 4,000, max indica que el tamario maximo de almacenamiento es 2431-1 bytes. El tamano de almacenamiento en bytes es dos veces el numero de caracteres especificado + 2 bytes. Los datos especificados pueden tener una longitud de 0 caracteres. ® Cuando no se especifica el argumento n en la funcién CAST, la longitud predeterminada es 30. ‘+ Use ncharcuando sea probable que el tamajio de las entradas de datos de las columnas sea similar. “+ Use nvarcharcuando sea probable que el tamafio de las entradas de datos de las columnas varie. > ROWVERSION: Rowversion suele utilizarse como mecanismo para marcar la versién de las filas de la tabla. El tamafio de almacenamiento es de 8 bytes. El tipo de datos rowersion es simplemente un numero que se incrementa y no conserva una fecha o una hora. Para registrar una fecha o una hora se usa un tipo de datos datetime2. @ Cada base de datos tiene un contador que se incrementa por cada operacién de insercién o actualizacién que se lleva a cabo en una tabla que contiene una columna rowversion en la base de datos. ® Timestamp es el sindnimo del tipo de datos rowversion y esté sujeto al comportamiento de los sinénimos de tipos de datos. En una instruccién CREATETABLE 0 ALTER TABLE, no tiene que especificar ningun nombre de columna para el tipo de datos timestamp. Sino especifica un nombre de columna, el SQL Server Database Engine (Motor de base de datos de SQL Server) genera el nombre de columna timestamp. Cuando utiliza rowversion, debe especificar un nombre de columna. > TABLE: Es un tipo de datos especial que se puede utilizar para almacenar un conjunto de resultados para su procesamiento posterior. Table se utiliza principalmente para el almacenamiento temporal de un conjunto de filas devuelto como el conjunto de resultados de una funcién con valores de tabla. Para declarar variables de tipo table, utilice DECLARE @local variable 4% TABLE TYPE DEFINITION Es el mismo subconjunto de informacion que se utiliza para definir una tabla en CREATETABLE. La declaracién de tabla incluye definiciones de columna, nombres, tipos de datos y restricciones. Sélo se permiten los tipos de restricciones PRIMARY KEY, UNIQUE KEY y NULL. 4 COLLATION DEFINITION Si no se especifica collation_definition, la columna hereda la intercalacién de la base de datos actual. Si la columna se ha definido como un tipo definido por el usuario CLR (CommonLanguageRuntima), la columna hereda la intercalacién del tipo detinido por el usuario. Las variables table ofrecen las siguientes ventajas: ® Una variable table se comporta como una variable local. Tiene un ambito bien definido. Dentro de su ambito, la variable table se puede utilizar como una tabla normal. Puede aplicarse en cualquier lugar de las instrucciones SELECT, INSERT, UPDATE y DELETE donde se utilice una tabla o expresién de tabla. ® Las variables table se limpian autométicamente al final de la funcién, procedimiento almacenado 0 lote en que estan definidas. ® Las restricciones CHECK, los valores DEFAULT y las columnas calculadas de la declaracién del tipo table no pueden llamar a funciones definidas por el usuario. @ Las variables table que se utilizan en procedimientos almacenados dan lugar a menos recompilaciones de los procedimientos almacenados que cuando se ulilizan tablas temporales. ® Las transacciones con variables table existen solo mientras dura una actualizacion en la variable table, que requieren menos recursos de registro y bloqueo. Tipo de datos entero que puede aceptar los valores 1, 0 0 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 asi sucesivamente. > DATETIME Define una fecha que se combina con una hora del dia con fracciones de segundos basada en un reloj de 24 horas. Sintaxis Datetime DECLARE @MyDatetimedatetime Uso CREATE TABLE Table! ( Column1 datetime ) Formatos de literal de cadena predeterminados(se usan para el No aplicable cliente de nivel inferior) innarraie as wots Del 1 de enero de 1753 hasta el 31 de diciembre de 9999 Intervalo de horas De 00:00:00 a 23:59:59.997 Intervalo de desplazamiento de zona Ninguno AAAA es una cifra de cuatro digitos ‘comprendida entre 1753 y 9999 que representa un ajo. MM es una cifra de dos digitos comprendida entre 01 y 12.que representa un mes del afio especificado. DD es una cifra de dos digitos comprendida entre 01 y 31 dependiendo de! mes, que representa un dia del mes especificado. intecvaloside clemert os) hh es una cifra de dos digitos comprendida entre 00 y 23 que representa la hora. mm es una cifra de dos digitos comprendida entre 00 y 59 que representa los minutos. 's es una cifra de dos digitos comprendida entre 00 y 59 que representa los segundos. nes una cifra de cero a tres digitos comprendida entre 0 y 999 que representa las fracciones de segundos. | 19 posiciones como minimo a 23 como Longitud de los caracteres Pies, ‘Tamaiio de almacenamiento 8 byies 7 Se redondea en incrementos de 0,000, 0,003 Frecision © 0.007 segundos | Valor predeterminado 1900-01-01 00:00:00 i Gregoriano (no incluye el interval completo Calendario ide afos,) Precision de fracciones de segundo Ng definida por el usuario Conservacién y reconocimiento del N desplazamiento de la zona horaria 9 Reconocimiento del horario de NO verano Formato de lineamiento compatible para datetime NUMERICO DESCRIPCION FECH. Puede especificar datos de fecha con un mes en forma de [0]4/15/[19]96 --(mda) | namero. Por ejemplo, 5/20/97 representa el veinte de mayo de 1997. Cuando use un formato numérico de fecha, especifique el mes, el dia y el afo en una cadena con barras [014-15 -[19}96 — (mda) [0/4.15.[19]96 ~- (mda) [014119}96/15 ~ (mad) 15/[0}4/{19]96 -- (dma) 15/[19]96/0}4 -- (dam) [19]96/15/(0}4 -- (adm) [19]96/[0]4/15 ~- (amd) FORMATOS DE HORA: 14:30 14:30[:20:999] 14:30[:20.9] 4am 4PM diagonales (/), guiones (-) 0 puntos (.) como separadores Esta cadena debe aparecer de la forma siguiente: ‘+ ndmero separador nimero separador numero [hora] hora] Cuando el idioma establecido es us_english, el orden predeterminado de la fecha es mdy (mes, dia, afio). Para cambiar e| orden de la fecha, utilice la instruccién SET DATEFORMAT. La configuracién de SET DATEFORMAT determina cémo se interpretan los valores de fecha. Si el orden no coincide con esta configuracién, los valores no se interpretaran como fechas porque se encuentran fuera del intervalo, 0 bien se interpretaran incorrectamente. ALFABETICO DESCRIPCION Abril] [15]L] 1996 Abr{il] 15[,] [19]96 Abril] 1996 [15] [15] Abril] 1996 15 Abrfil. [19196 5 [19]96 abril] [15] 1996 abril) 1996 ABR[IL] [15] 1996 [15] ABRIL] Puede especificar los datos de la fecha con un mes especificado como el nombre completo del mes. Estas son algunas directrices para utilizar los formatos alfabéticos de fecha’ B Incluya los datos de fecha y hora entre comillas simples ()). Para los idiomas distintos de inglés, utilice N’ # Los caracteres que se incluyen entre corchetes son opcionales. 48 Si sdlo especifica los dos ultimos digitos del aio, los valores inferiores a los dos Ultimos digitos del valor de la opcién de configuracién Fecha limite de afio de dos digitos pertenecen al mismo siglo que el afio limite. Los valores mayores 0 iguales que el valor de esta opcién pertenecen al siglo anterior al afio limite. ® Si falta el dia, se usaré el primer dia del mes. El pardmetro de sesién SET DATEFORMAT no se aplica cuando se especifica el mes de forma alfabétic Eek AAAAMMDDThh:mm:ss[.mmm] Pee ‘AAAA-MN-DDThh:mm:ss[.mmm] | Para utiizar el formato ISO 8601, debe espectficar todos los elementos del formato. Esto también incluye T, los dos puntos (:) y el punto (.) que se muestran en el formato. Los corchetes indican que el componente de fraccién de segundo es opcional. El componente de hora se especifica en el formato de 24 horas. La T indica el inicio de la parte de hora del valor datetime. La ventaja de utilizar el formato ISO 8601 es que se trata de un esténdar internacional con una especificacién que evita ambigtiedades. Asimismo, este formato no se ve afectado por los parametros SET DATEFORMAT 0 SET LANGUAGE. { ts "1998-05-02 01:23:56.123" } {4 1990-10-02" } {t'13:33:41" } Pee La API de ODBC define secuencias de escape para representar valores de fecha y de hora que ODBC llama datos de marca de tiempo. Las aplicaciones que usan las AP! basadas en ODBC, OLE DB y ADO pueden usar este formato de marca de tiempo de ODBC para representar fechas y horas. Las secuencias de escape de marca de hora de ODBC tienen el formato: { lteral_type ‘constant_value’ } 4 literal_type especifica el tipo de la secuencia de escape. Las marcas de hora tienen tres especiticadores literal type’ o d=sélo fecha sélo hora © ts = marca de hora (hora + fecha) ® ‘constant_value’ es el valor de la secuencia de escape. constant value debe seguir estos formatos para cada literal_type. literal_typeformatoconstant_value d aaaa-mm-dd thh:mm:ssf ff] tsaaaa-mm-ddhh:mm:ss| fff] Los valores datetime se redondean con incrementos de 0,000; 0,003 0 0,007 segundos, como’ AUAKoa] ESPECIFICADO POR VALOH au Lao EL USUARIO 01/01/98 23:59:59.999 | _ 1998-01-02 00: 01/01/98 23:59:59.995 10.000 01/01/98 23:59:59.996 1998-01-01 23:59:59.997 01/01/98 23:59:59.997 01/01/98 23:59:59.998 01/01/98 23:59:59.992 01/01/98 23:59:59.993 | 1998-01-01 23:59:59.993, 01/01/98 23:59:59.994 01/01/98 23:59:59.990 1998-01-01 23:59:59.990 01/01/98 23:59:59.991 > HIERARCHYID. El tipo de datos del sistema de hierarchyid es de longitud variable. Use hierarchyid para representar la posicién en una jerarquia. Una columna de tipo hierarchyid no representa automaticamente un Arbol. Dependera de la aplicacién generar y asignar los valores hierarchyid de tal forma que la relacion deseada entre las filas se refleje en los valores. Los valores de hierarchyid tienen las siguientes propiedades. Muy COMPACTOS El numero medio de bits necesarios para representar un nodo en un Arbol con nodos depende del promedio de nodos secundarios. Para muttiplicadores de salida pequefios (0-7), el tamafio es aproximadamente 6*logAn bits, donde A es el promedio de nodos secundarios. Un nado en una jerarquia organizativa de 100.000 personas con un promedio de nodos secundarios de 6 niveles supone aproximadamente 38 bits. Esto se redondea a 40 bits (0 5 bytes) para el almacenamiento. ® LA COMPAR, REALIZA CON PRIORIDAD A LA PROFUNDIDAD Dados dos valores hierarchyid a y b, acb que viene antes que b en un corte transversal de prioridad a la profundidad de! arbol. Los indices de los tipos de datos hierarchyid estén en orden con prioridad a la profundidad y los nodos cercanos entre si en un corte transversal de prioridad a la profundidad se almacenan casi uno junto aotro. 4% COMPATIBILIDAD CON INSERCIONES Y ELIMINACIONES ARBITRARI. 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, 0 entre dos miembros cualesquiera del mismo nivel. Se mantiene la propiedad comparison cuando se inserta o elimina un numero arbitrario de nodos de la jerarquia. ® La codificacién usada en el tipo hierarchyid esta limitada a 892 bytes. Por consiguiente, el tipo hierarchyid no podrd representar los nodos con demasiados niveles en su representacién como para caber en los 892 bytes. NTEXT, TEXT E IMAGE: Tipos de datos de longitud fija y variable para almacenar valores de gran tamafio 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 maxima de 2°30 - 1 (1.073.741.823) caracteres. El tamano del almacenamiento, en bytes, es dos veces el numero de caracleres especificado, @ TEXT: Datos no Unicode de longitud variable de la pagina de cédigos del servidor y con una longitud maxima de 2431-1 (2.147.483.647) caracteres. Cuando la pagina de codigos 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. AGE: Datos binarios de longitud variable desde 0 hasta 231-1 (2.147.483.647) bytes. Funciones e instrucciones que se pueden utilizar con datos de tipo text, ntext o imagen son FUNCIONES INSTRUCCIONES: DATALENGTH (Transact-SQL) | READTEXT (Transact-SQL) PATINDEX (Transact-SQL) SET TEXTSIZE (Transact-SQL| SUBSTRING (Transact-SQL) | UPDATETEXT (Transact-SQL) TEXTPTR (Transact-SQL) WRITETEXT (Transact-SQL) TEXTVALID (Transact-SQL)

También podría gustarte