Tipos de Datos SQL

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

Views 160 Downloads 63 File size 542KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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