sql >> データベース >  >> RDS >> Mysql

MySQLのtinyint、smallint、mediumint、bigint、intの違いは何ですか?

    それらは異なる量のスペースを占有し、許容値の範囲が異なります。

    SQLServerの値のサイズと範囲は次のとおりです。 、他のRDBMSにも同様のドキュメントがあります:

    それらはすべて同じ仕様を使用しますが(以下に示すいくつかのマイナーな例外を除く)、これらのタイプのさまざまな組み合わせをサポートします(NUMBERしかないため、Oracleは含まれていません データ型、上記のリンクを参照):

                 | SQL Server    MySQL   Postgres    DB2
    ---------------------------------------------------
    tinyint      |     X           X                
    smallint     |     X           X         X        X
    mediumint    |                 X
    int/integer  |     X           X         X        X 
    bigint       |     X           X         X        X
    

    そして、それらは同じ値の範囲をサポートし(以下の1つの例外を除く)、すべて同じストレージ要件があります:

                | Bytes    Range (signed)                               Range (unsigned)
    --------------------------------------------------------------------------------------------
    tinyint     | 1 byte   -128 to 127                                  0 to 255
    smallint    | 2 bytes  -32768 to 32767                              0 to 65535
    mediumint   | 3 bytes  -8388608 to 8388607                          0 to 16777215
    int/integer | 4 bytes  -2147483648 to 2147483647                    0 to 4294967295
    bigint      | 8 bytes  -9223372036854775808 to 9223372036854775807  0 to 18446744073709551615 
    

    「署名されていない」タイプはMySQLでのみ使用可能であり、残りは署名された範囲のみを使用します。ただし、 tinyintという1つの注目すべき例外があります。 SQLServerでは署名されていません 値の範囲は0〜255



    1. mysqlのプリペアドステートメントを使用する方が、一般的なエスケープ関数を使用するよりも安全なのはなぜですか?

    2. Oracleで曜日名の正しいパディングを削除する方法

    3. MariaDBコネクタ/Pythonベータ版が利用可能になりました

    4. ユーザーの最近の活動-PHPMySQL