Sei sulla pagina 1di 6

Tipos de datos en Oracle

Los tipos de datos soportados por Oracle se agrupan en los siguientes conjuntos.
Alfanuméricos Numéricos Fecha Binarios Otros
CHAR NUMBER DATE RAW ROWID
VARCHAR2 FLOAT LONGRAW
VARCHAR BLOB
NCHAR CLOB
NVARCHAR2 NLOB
LONG (Obs.) BFILE

Los valores alfanuméricos van encerrados entre comilla simple: 'Alfanumérico' Los
valores numéricos son número simples: 123 Las fechas van encerradas entre comillas
simples: '11/11/2011' Los valores binarios no pueden ser representados (son fotos,
vídeos)

Tipo de dato CHAR(b)


Almacena cadenas de caracteres de longitud fija, desde 1 a 2.000 bytes de ocupación. El
número de caracteres que se pueden almacenar se rige según la siguiente fórmula.
nº caracteres = bytes / character set
Para ASCII, el conjunto de caracteres ocupa un byte, por lo que coincide el número de
caracteres máximos con la ocupación del tipo de dato. Si se introduce un valor de 10
caracteres en un campo de CHAR(100), se tendrá que rellenar con 90 posiciones
restantes.
Así la siguiente expresión es cierta: 'Hola Andrea' = 'Hola Andrea '
Si se intenta introducir un valor demasiado grande para el campo, se intentará eliminar
los espacios finales, y si cabe sin espacios, se introduce. Si aún así no cabe, se retorna
un error.
Tipo de dato VARCHAR2(b)
Almacena cadenas de caracteres de longitud variable. Si se define una columna de
longitud 100 bytes, y se introduce en ella un valor de 10 bytes, la columna ocupará 10 y
no 100 como hacía con el tipo de dato CHAR.
Tipo de dato VARCHAR(b)
En Oracle es equivalente a VARCHAR2, en futuras versiones permitirá distintos criterios
de comparación.
Tipo de dato NCHAR(b)
Almacena un valor alfanumérico de longitud fija con posibilidad de cambio de juego de
caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE.
Tipo de dato NVARCHAR2(b)
Almacena un valor alfanumérico de longitud variable con posibilidad de cambio de juego
de caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE.
Tipo de dato NUMBER(p,s)
Almacena valores numéricos en punto flotante que pueden ir desde 1.0 x 10-130 hasta
9.9…(38 nueves)… 9 x 10125 . El almacenamiento interno de los valores numéricos en
notación científica:
Mantisa x 10exponente
La mantisa puede contener cualquier número, entero o decimal, positivo o negativo. El
exponente podrá contener cualquier número entero, positivo o negativo. El parámetro p
indica la precisión (número de dígitos contando los decimales) que contendrá el número
como máximo. Oracle garantiza los datos con precisiones de 1 a 38. El parámetro s
indica la escala, esto es, el máximo de dígitos decimales. Hay que tener en cuenta que
una columna definida NUMBER(10,5), podrá contener como máximo cualquier número
siempre y cuando el número de dígitos enteros más el número de dígitos decimales no
supere 10 (y no 15). La escala puede ir de -84 a 127. Para definir número enteros, se
puede omitir el parámetro s o bien poner un 0 en su lugar. Se puede especificar una
escala negativa, esto lo que hace es redondear el número indicado a las posiciones
indicadas en la escala. Por ejemplo un número definido como NUMBER(5,-2), redondeará
siempre a centenas. Así si intentamos introducir el valor 1355, en realidad se almacenará
1400.
Tipo de dato FLOAT(b)
Almacena un número en punto decimal sin restricción de dígitos decimales.
El parámetro b indica la precisión binaria máxima que puede moverse en el rango 1 a
126. Si se omite el defecto será 126. Una columna FLOAT(126) es equivalente a una
columna NUMBER(38), aunque la diferencia está en que la columna NUMBER no podrá
contener decimales y la columna FLOAT si y con cualquier escala.
Tipo de dato DATE
Almacena un valor de fecha y hora.
Para un tipo de dato DATE, Oracle almacena internamente los siguiente datos:
 Siglo
 Año
 Mes
 Día
 Hora
 Minuto
 Segundo
El formato por defecto de las fechas es: 'DD-MON-YYYY' Esto es:
Dos dígitos para el día Las tres primeras siglas del mes (depende del idioma instalado).
Cuatro dígitos para el año.
Por ejemplo:
'11-NOV-2011' '12-APR-1999'
Este formato puede ser alterado en cualquier momento.
Internamente una fecha se almacena como el número de días desde cierto punto de
inicio (por ejemplo el año 0).
Tipos de datos binarios
Permiten almacenar información en formato “crudo”, valores binarios tal y como se
almacenan en el disco duro o como residen en memoria. Estas columnas se pueden
utilizar tanto para almacenar grandes cantidades de datos (hasta 4Gb.), como para
almacenar directamente cualquier tipo de fichero (ejecutables, sonidos, vídeos, fotos,
documentos Word, DLLs…) o para transportar datos de una base de datos a otra, ya que
el formato binario es el único formato común entre cualquier sistema informático.
Tipo de dato LONG (Obsoleto)
Almacena caracteres de longitud variable hasta 2 Gb. Este tipo de dato se soporta para
compatibilidad con versiones anteriores. En Oracle y siguientes versiones se debe usar
los tipos de datos CLOB y NLOB para almacenar grandes cantidades de datos
alfanuméricos.
Tipo de dato ROWID
Representa una dirección de la base de datos, ocupada por una única fila. El ROWID de
una fila es un identificador único para una fila dentro de una base de datos. No hay dos
filas con el mismo ROWID. Este tipo de dato sirve para guardar punteros a filas
concretas.
Listado y descripción de los distintos tipos de datos de MySQL.
TinyInt:
Es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de
valores es de 0 a 255
Bit ó Bool:
Un número entero que puede ser 0 ó 1
SmallInt:
Número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es
de 0 a 65535.
MediumInt:
Número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde
0 a16777215.
Integer, Int:
Número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va
desde 0 a 429.4967.295
BigInt:
Número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a
9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615.
Float:
Número pequeño en coma flotante de precisión simple. Los valores válidos van desde -3.402823466E+38 a -1.175494351E-
38, 0 y desde 1.175494351E-38 a 3.402823466E+38.
xReal, Double:
Número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -
2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308
Decimal, Dec, Numeric:
Número en coma flotante desempaquetado. El número se almacena como una cadena
Tipo de Campo Tamaño de Almacenamiento
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT 4 bytes
INTEGER 4 bytes
BIGINT 8 bytes
FLOAT(X) 4 ú 8 bytes
FLOAT 4 bytes
DOUBLE 8 bytes
DOUBLE
PRECISION 8 bytes
REAL 8 bytes
M+2 bytes sí D > 0, M+1 bytes sí D =
DECIMAL(M,D 0
NUMERIC(M,D) M+2 bytes if D > 0, M+1 bytes if D = 0
Date:
Tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El
formato de almacenamiento es de año-mes-dia
DateTime:
Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al
31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia
horas:minutos:segundos
TimeStamp:
Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento
depende del tamaño del campo:
Tamaño Formato
AñoMesDiaHoraMinutoSegundo
14 aaaammddhhmmss
AñoMesDiaHoraMinutoSegundo
12 aammddhhmmss
8 ñoMesDia aaaammdd
6 AñoMesDia aammdd
4 AñoMes aamm
2 Año aa
Time:
Almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El
formato de almacenamiento es de 'HH:MM:SS'
Year:
Almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o
tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.
Tipo de Tamaño de
Campo Almacenamiento
DATE 3 bytes
DATETIME 8 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte
Char(n):
Almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres.
VarChar(n):
Almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres.
Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object)
La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones.
Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas
en cuenta.
Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros.
TinyText y TinyBlob:
Columna con una longitud máxima de 255 caracteres.
Blob y Text:
Un texto con un máximo de 65535 caracteres.
MediumBlob y MediumText:
Un texto con un máximo de 16.777.215 caracteres.
LongBlob y LongText:
Un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de
comunicación los paquetes pueden tener un máximo de 16 Mb.
Enum:
Campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos
Set:
Un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores.
Tipo de campo Tamaño de Almacenamiento
CHAR(n) n bytes
VARCHAR(n) n +1 bytes
TINYBLOB, TINYTEXT Longitud+1 bytes
BLOB, TEXT Longitud +2 bytes
MEDIUMBLOB, MEDIUMTEXT Longitud +3 bytes
LONGBLOB, LONGTEXT Longitud +4 bytes
ENUM('value1','value2',...) 1 ó dos bytes dependiendo del número de valores
SET('value1','value2',...) 1, 2, 3, 4 ó 8 bytes, dependiendo del número de valores
Diferencia de almacenamiento entre los tipos Char y VarChar
Almace Almace
Valor CHAR(4) namiento VARCHAR(4) namiento
'' '' 4 bytes " 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd'
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes
Tipos de datos de Microsoft SQL Server
Grupo Tipo de dato Intervalo Almacenamiento
Numéricos bigint De -263 (-9.223.372.036.854.775.808) a 263 - 1 8 bytes
exactos (9.223.372.036.854.775.807)
int De -231 (-2.147.483.648) a 231 - 1 (2.147.483.647) 4 bytes
smallint De -215 (-32.768) a 215 - 1 (32.767) 2 bytes
tinyint De 0 a 255 1 byte
bit Tipo de datos entero que puede aceptar los valores 1, 0 ó 2 bytes
NULL
decimal,  p (precisión): el número total máximo de dígitos Precisión 1 - 9: 5
numeric, decimales que se puede almacenar, tanto a la bytes
decimal (p, s) izquierda como a la derecha del separador
decimal. La precisión debe ser un valor
comprendido entre 1 y la precisión máxima de 38.
La precisión predeterminada es 18.
 s (escala): el número máximo de dígitos
decimales que se puede almacenar a la derecha
del separador decimal. La escala debe ser un
valor comprendido entre 0 y p. Sólo es posible
especificar la escala si se ha especificado la
precisión. La escala predeterminada es 0.

Con precisión máxima 1038 +1 y 1038 - 1


money Tipos de datos que representan valores monetarios o de 8 bytes
moneda: de -922.337.203.685,4775808 a
922.337.203.685,4775807
smallmoney De - 214,7483648 a 214,7483647 4 bytes
Numéricos float De - 1,79E+308 a -2,23E-308, 0 y de 2,23E-308 a Depende del valor
aproximados 1,79E+308 de n
real De - 3,40E + 38 a -1,18E - 38, 0 y de 1,18E - 38 a 3,40E 4 Bytes
+ 38
Fecha y hora datetime Del 1 de enero de 1753 hasta el 31 de diciembre de 9999
smalldatetime Del 1 de enero de 1900 hasta el 6 de junio de 2079
Cadenas de char (n) Caracteres no Unicode de longitud fija, con una longitud n bytes
caracteres de nbytes. n debe ser un valor entre 1 y 8.000
varchar (n) Caracteres no Unicode de longitud variable. n indica que n bytes (aprox.)
el tamaño de almacenamiento máximo es de 231 - 1 bytes
text En desuso, sustituido por varchar. max bytes
(aprox.)
Datos no Unicode de longitud variable con una longitud
máxima de 231 - 1 (2.147.483.647) caracteres
Cadenas de nchar (n) Datos de carácter Unicode de longitud fija, 2 * n bytes
caracteres con n caracteres. ndebe estar comprendido entre 1 y
unicode 4.000
nvarchar (n) Datos de carácter Unicode de longitud variable. n indica 2 * n bytes + 2
que el tamaño máximo de almacenamiento es 231 - 1 bytes
bytes
ntext (n) En desuso, sustituido por nvarchar. 2 * n bytes

Datos Unicode de longitud variable con una longitud


máxima de 230 - 1 (1.073.741.823) caracteres
Cadenas binary (n) Datos binarios de longitud fija con una longitud n bytes
binarias de n bytes, donde n es un valor que oscila entre 1 y 8.000
varbinary (n) Datos binarios de longitud variable. n indica que el n bytes
tamaño de almacenamiento máximo es de 231 - 1 bytes
image En desuso, sustituido por varbinary.
Datos binarios de longitud variable desde 0 hasta 231 - 1
(2.147.483.647) bytes
Otros tipos cursor Tipo de datos para las variables o para los parámetros de
de datos resultado de los procedimientos almacenados que
contiene una referencia a un cursor. Las variables creadas
con el tipo de datos cursor aceptan NULL
timestamp Tipo de datos que expone números binarios únicos 8 bytes
generados automáticamente en una base de datos. El tipo
de datos timestamp es simplemente un número que se
incrementa y no conserva una fecha o una hora
sql_variant Tipo de datos que almacena valores de varios tipos de
datos aceptados en SQL Server,
excepto text, ntext, image, timestamp y sql_variant
uniqueidentifier Es un GUID (Globally Unique Identifier, Identificador 16 bytes
Único Global)
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
xml Almacena datos de XML. Puede almacenar instancias de
xml en una columna o una variable de tipo xml

Potrebbero piacerti anche