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.

