A continuación hay un resumen de los tipos de columnas numéricos. Para información adicional, consulte Sección 11.2, “Tipos numéricos”. Los requerimientos de almacenamiento de columna se dan en Sección 11.5, “Requisitos de almacenamiento según el tipo de columna”.
M
indica la anchura máxima para
mostrar. La anchura máxima es 255. La anchura de muestra no
tiene nada que ver con el tamaño de almacenamiento o el rango
de valores que el valor puede contener, como se describe en
Sección 11.2, “Tipos numéricos”.
Si especifica ZEROFILL
para columnas
numéricas,, MySQL añade automáticamente el atributo
UNSIGNED
en la columna.
SERIAL
es un alias para BIGINT
UNSIGNED NOT NULL AUTO_INCREMENT
.
SERIAL DEFAULT VALUE
en la definición de una
columna de tipo entero es un alias para NOT NULL
AUTO_INCREMENT UNIQUE
.
Atención: Debe tener en cuenta
que cuando usa la resta entre valores enteros cuando uno de los
operandos es de tipo UNSIGNED
, el resultado
no tiene signo. Consulte Sección 12.8, “Funciones y operadores de cast”.
BIT[(
M
)]
En un tipo de datos bit. M
indica
el número de bits por valor, de 1 a 64. El valor por
defecto es 1 si se omite M
.
Este tipo de datos se añadió en MySQL 5.0.3 para
MyISAM
, una extensión en 5.0.5 para
MEMORY
, InnoDB
, y
BDB
. Antes de 5.0.3,
BIT
es un sinónimo de
TINYINT(1)
.
TINYINT[(
M
)] [UNSIGNED]
[ZEROFILL]
Un entero muy pequeño. El rango con signo es de
-128
a 127
. El rango
sin signo es de 0
a
255
.
BOOL
, BOOLEAN
Son sinónimos para TINYINT(1)
. Un valor
de cero se considera falso. Valores distintos a cero se
consideran ciertos.
En el futuro, se introducirá tratamiento completo de tipos booleanos según el estándar SQL.
SMALLINT[(
M
)] [UNSIGNED]
[ZEROFILL]
Un entero pequeño. El rango con signo es de
-32768
a 32767
. El
rango sin signo es de 0
a
65535
.
MEDIUMINT[(
M
)]
[UNSIGNED] [ZEROFILL]
Entero de tamaño medio. El rango con signo es de
-8388608
a 8388607
. El
rango sin singo es de 0
a
16777215
.
INT[(
M
)] [UNSIGNED]
[ZEROFILL]
Un entero de tamaño normal. El rango con signo es de
-2147483648
a
2147483647
. El rango sin signo es de
0
a 4294967295
.
INTEGER[(
M
)] [UNSIGNED]
[ZEROFILL]
Es un sinónimo de INT
.
BIGINT[(
M
)] [UNSIGNED]
[ZEROFILL]
Un entero grande. El rango con signo es de
-9223372036854775808
a
9223372036854775807
. El rango sin signo
es de 0
a
18446744073709551615
.
Algunos aspectos a considerar con respecto a las columnas
BIGINT
:
Toda la aritmética se hace usando valores
BIGINT
o DOUBLE
,
así que no debe usar enteros sin signos mayores que
9223372036854775807
(63 bits)
except con funciones bit! Si lo hace, algunos de los
últimos dígitos en el resultado pueden ser erróneos
por culpa de errores de redondeo al convertir valores
BIGINT
a DOUBLE
.
MySQL 5.0 puede tratar BIGINT
en
los siguientes casos:
Cuando usa enteros para almacenar valores grandes
sin signo en una columna BIGINT
.
En
MIN(
o
col_name
)MAX(
,
donde col_name
)col_name
se
refiere a una columna BIGINT
.
Al usar operadores (+
,
-
, *
, y
así) donde ambos operadores son enteros.
Siempre puede guardar un valor entero exacto en un
columna BIGINT
almacenándolo
usando una cadena de caracteres. En este caso, MySQL
realiza una conversión cadena de caracteres-número
que no implica representación de doble precisión
intermedia.
Los operadores -
,
+
, y *
usan
BIGINT
en operaciones aritméticas
cuando ambos operandos son valores enteros. Esto
significa que si multiplica dos enteros grandes (o
resultados de funciones que devuelven enteros), puede
obtener resultados inesperados cuando el resultado es
mayor que 9223372036854775807
.
FLOAT(
p
) [UNSIGNED]
[ZEROFILL]
Número con coma flotante. p
representa la precisión. Puede ir de 0 a 24 para números
de coma flotante de precisión sencilla y de 25 a 53 para
números de coma flotante con doble precisión. Estos tipos
son como los tipos FLOAT
y
DOUBLE
descritos a continuación.
FLOAT(p)
tiene le mismo rango que los
tipos correspondientes FLOAT
y
DOUBLE
, pero la anchura de muestra y el
número de decimales no están definidos.
En MySQL 5.0, este es un valor de coma flotante auténtico.
Esta sintaxis se proprociona para compatibilidad con ODBC.
Usar FLOAT
puede darle algunos problemas
inesperados ya que todos los cálculos se en MySQL se hacen
con doble precisión. Consulte
Sección A.5.7, “Resolver problemas con registros que no salen”.
FLOAT[(
M
,D
)]
[UNSIGNED] [ZEROFILL]
Un número de coma flotante pequeño (de precisión simple).
Los valores permitidos son de
-3.402823466E+38
a
-1.175494351E-38
, 0
, y
de 1.175494351E-38
a
3.402823466E+38
. Si se especifica
UNSIGNED
, los valores negativos no se
permiten. M
es la anchura de
muestra y D
es el número de
dígitos significativos. FLOAT
sin
argumentos o
FLOAT(
(donde p
)p
está en el rango de 0 a
24) es un número de coma flotante con precisión simple.
DOUBLE[(
M
,B
)]
[UNSIGNED] [ZEROFILL]
Número de coma flotante de tamaño normal (precisión
doble). Los valores permitidos son de
-1.7976931348623157E+308
a
-2.2250738585072014E-308
,
0
, y de
2.2250738585072014E-308
a
1.7976931348623157E+308
. Si se especifica
UNSIGNED
, no se permiten valores
negativos. M
es la anchura de
muestra y B
es el número de bits
de precisión. DOUBLE
sin parámetros o
FLOAT(
(donde p
)p
está en el rango de 25
a 53) es un número de coma flotante con doble precisión.
Un número de coma flotante con precision sencilla tiene una
precisión de 7 decimales aproximadamente; un número con
coma flotante de doble precisión tiene una precisión
aproximada de 15 decimales.
DOUBLE
PRECISION[(
,
M
,D
)]
[UNSIGNED] [ZEROFILL]REAL[(
M
,D
)]
[UNSIGNED] [ZEROFILL]
Son sinónimos de DOUBLE
. Excepción: Si
el modo del servidor SQL incluye la opción
REAL_AS_FLOAT
, REAL
es
un sinónimo para FLOAT
en lugar de
DOUBLE
.
DECIMAL[(
M
[,D
])]
[UNSIGNED] [ZEROFILL]
A partir de MySQL 5.0.3:
Número de punto fijo exacto y empaquetado.
M
es el número total de dígitos
y D
es el número de decimales.
El punto decimal y (para números negativos) el signo
'-
' no se tiene en cuenta en
M
. Si
D
es 0, los valores no tienen
punto decimal o parte fraccional. El máximo número de
dígitos (M
) para
DECIMAL
es 64. El máximo número de
decimales soportados (D
) es 30.
Si UNSIGNED
se especifica, no se permiten
valores negativos.
Si se omite D
, el valor por
defecto es 0. Si se omite M
, el
valor por defecto es 10.
Todos los cálculos básicos (+, -, *, /
)
con columnas DECIMAL
se hacen con
precisión de 64 dígitos decimales.
Antes de MySQL 5.0.3:
Número de punto decimal fijo sin empaquetar. Se comporta
como una columna CHAR
; "sin
empaquetar" significa que el número se alacena como
una cadena de caracteres, usando un carácter para cada
dígito del valor. M
es el
número total de dígitos y D
es
el número de decimales. El punto decimal y (para números
negativos) el signo '-
' no se cuenta en
M
, aunque se reserva espacio para
él. Si D
es 0, los valores no
tienen punto decimal ni parte fraccional. El máximo rango
de los valores DECIMAL
es el mismo que
para DOUBLE
, pero el rango real para una
columna DECIMAL
dada puede estar
restringido por la elección de M
y D
. Si se especifica
UNSIGNED
no se permiten números
negativos.
Si se omite D
, el valor por
defecto es 0. Si se omite M
, el
valor por defecto es 10.
DEC[(
,
M
[,D
])]
[UNSIGNED] [ZEROFILL]NUMERIC[(
,
M
[,D
])]
[UNSIGNED] [ZEROFILL]FIXED[(
M
[,D
])]
[UNSIGNED] [ZEROFILL]
Son sinónimos para DECIMAL
. El sinónimo
FIXED
está disponible por compatibilidad
con otros servidores.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.