OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    数値型

    最終更新日:2026-04-09 02:53:56  更新
    シェア
    このページの内容
    数値型の概要
    整数型
    固定小数点型
    浮動小数点型
    BIT値型

    折りたたみ

    シェア

    OceanBaseデータベースは、標準SQLの数値型をサポートしており、これには正確な数値型、近似数値型、ビット値を格納するBITデータ型、および拡張型が含まれます。

    数値型の概要

    数値型の分類

    OceanBaseデータベースの現行バージョンでサポートされている数値型は、以下の4つに分類されます:

    • 整数型:BOOL/BOOLEAN/TINYINT、SMALLINT、MEDIUMINT、INT/INTEGER、BIGINT および SERIAL。

    • 固定小数点型:DECIMAL および NUMERIC。

    • 浮動小数点型:FLOAT および DOUBLE。

    • Bit-Value型:BIT。

    数値型を定義する際には、Precision(精度、フィールド長)とScale(範囲、小数点以下の桁数)を指定できます。数値型によってPrecisionとScaleの意味が異なる場合があるため、詳細については各型の説明を参照してください。

    ZEROFILLプロパティ

    数値型を定義する際に、ZEROFILL キーワードを使用して最小表示幅を指定でき、同時にその型を暗黙的に UNSIGNED として定義します。データの実際の表示幅が最小表示幅に満たない場合、小数部をまずScaleの上限まで、次に整数部をPrecisionの上限まで0で補うことで、表示幅を最小表示幅まで補います。

    例:

    • INT(5) ZEROFILL は、データ値が123の場合、00123として表示されることを意味します。

    • DECIMAL(10, 5) ZEROFILL は、データ値が123.456の場合、00123.45600として表示されることを意味します。

    整数型

    整数型は固定長で正確な数値型であり、値の範囲は型の長さと符号があるかどうかによって決まります。Precisionは最小表示幅を示すだけです。

    OceanBaseデータベースがサポートする各整数型に必要なストレージ長と値の範囲は、以下の表に示されています。

    タイプ 長さ(バイト) 値の範囲(符号あり) 値の範囲(符号なし)
    BOOL/BOOLEAN/ TINYINT 1 [-27, 27 - 1] [0, 28 - 1]
    SMALLINT 2 [-215, 215 - 1] [0, 216 - 1]
    MEDIUMINT 3 [-223, 223 - 1] [0, 224 - 1]
    INT/INTEGER 4 [-231, 231 - 1] [0, 232 - 1]
    BIGINT 8 [-263, 263 - 1] [0, 264 - 1]
    SERIAL 8 N/A [0, 264 - 1]

    TINYINT

    TINYINTは非常に小さい整数を表すために使用されます。構文は次のとおりです:

    TINYINT[(M)] [UNSIGNED] [ZEROFILL]
    

    ここで、Mは最大表示幅を表します。最大表示幅は255です。表示幅は格納できる値の範囲とは無関係です。数値列にZEROFILLを指定した場合、OceanBaseデータベースは自動的にその列にUNSIGNED属性を追加します。

    BOOL/BOOLEAN

    BOOL/BOOLEAN型はTINYINTのシノニムです。ゼロ値はエラーを表し、非ゼロ値は正しいことを表します。例:

    obclient> SELECT IF(0, 'true', 'false');
    +------------------------+
    | IF(0, 'true', 'false') |
    +------------------------+
    | false                  |
    +------------------------+
    1 row in set
    
    obclient> SELECT IF(1, 'true', 'false');
    +------------------------+
    | IF(1, 'true', 'false') |
    +------------------------+
    | true                   |
    +------------------------+
    1 row in set
    
    obclient> SELECT IF(2, 'true', 'false');
    +------------------------+
    | IF(2, 'true', 'false') |
    +------------------------+
    | true                   |
    +------------------------+
    1 row in set
    
    obclient> SELECT IF(2 = FALSE, 'true', 'false');
    +--------------------------------+
    | IF(2 = FALSE, 'true', 'false') |
    +--------------------------------+
    | false                          |
    +--------------------------------+
    1 row in set
    

    SMALLINT

    SMALLINTは小さな整数を表すために使用されます。構文は次のとおりです:

    SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
    

    ここで、Mは最大表示幅を表します。最大表示幅は255です。表示幅は格納できる値の範囲とは無関係です。数値列にZEROFILLを指定した場合、OceanBaseデータベースは自動的にその列にUNSIGNED属性を追加します。

    MEDIUMINT

    MEDIUMINTは中程度の大きさの整数を表すために使用されます。構文は次のとおりです:

    MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
    

    ここで、Mは最大表示幅を表します。最大表示幅は255です。表示幅は格納できる値の範囲とは無関係です。数値列にZEROFILLを指定した場合、OceanBaseデータベースは自動的にその列にUNSIGNED属性を追加します。

    INT/INTEGER

    INTまたはINTEGERは通常のサイズの整数を表すために使用されます。構文は次のとおりです:

    INT[(M)] [UNSIGNED] [ZEROFILL] INTEGER[(M)] [UNSIGNED] [ZEROFILL]
    

    ここで、Mは最大表示幅を表します。最大表示幅は255です。表示幅は格納できる値の範囲とは無関係です。数値列にZEROFILLを指定した場合、OceanBaseデータベースは自動的にその列にUNSIGNED属性を追加します。​

    BIGINT

    BIGINTは大きな整数を表すために使用されます。構文は次のとおりです:

    BIGINT[(M)] [UNSIGNED] [ZEROFILL]
    

    ここで、Mは最大表示幅を表します。最大表示幅は255です。表示幅は格納できる値の範囲とは無関係です。数値列にZEROFILLを指定した場合、OceanBaseデータベースは自動的にその列にUNSIGNED属性を追加します。

    BIGINTについては、以下の点に注意する必要があります:

    • すべての演算では符号付きのBIGINTまたはDOUBLE値を使用する必要があるため、9223372036854775807(63ビット)より大きな符号なしの大整数は使用しないでください。BIT関数は例外です。そうしないと、BIGINT値をDOUBLEに変換する際に丸め誤差が発生し、結果の最後の桁が間違っている可能性があります。

    • 文字列を使用してBIGINTを格納することで、常に正確な整数値をBIGINT列に格納できます。この場合、文字列から数値への変換を実行する際には、倍精度の中間変換は不要です。

    • 2つの演算子が整数値の場合、-、+、*演算子はBIGINT演算を使用します。2つの大きな整数(または関数が返す整数結果)を掛け算すると、結果が9223372036854775807を超えると異常な結果が得られる可能性があります。

    SERIAL

    SERIALデータ型は、自動インクリメントの大きな整数(広範囲の数字)列を表すために使用されます。SERIALデータ型は、デフォルトでBIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE型の列を作成することに相当します。SERIALデータ型を使用すると、一意の識別子を持つ列を簡単に作成でき、特にテーブルの主キーとして使用するのに適しています。

    固定小数点型

    固定小数点型は可変長の正確な数値型であり、値の範囲と精度はPrecisionとScale、および符号が無符号かどうかによって決まります。

    DECIMAL は NUMERIC と同等です。構文は以下のとおりです:

    DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
    

    ここで、M は格納可能な総桁数(Precision)、D は小数点以下の桁数(Scale)を表します。小数点と負の記号「-」は M に含まれません。D が0の場合、値に小数点または小数部はありません。整数部の最大有効桁数は M から D を引いた値、つまりPrecisionからScaleを引いた値に等しくなります。

    DECIMAL の M の最大値は65、D の最大値は30です。D を省略した場合、デフォルトは0になります。M を省略した場合、デフォルトは10になります。M と D の両方が指定されていない場合、DECIMAL 列を含むすべての基本的な計算(+、-、*、/)では65桁の精度が使用されます。

    数値列に ZEROFILL を指定すると、OceanBaseデータベースは自動的にその列に UNSIGNED プロパティを追加します。UNSIGNED を指定した場合、負の値を許可しません。

    例えば、DECIMAL(5, 2) は整数部と小数部の最大有効桁数がそれぞれ3と2であることを意味するため、値の範囲は [-999.99, 999.99] となります。同時に UNSIGNED として定義されている場合、値の範囲は [0, 999.99] となります。

    以下の型も DECIMAL のシノニムです。その中で、FIXED は他のデータベースシステムとの互換性を持たせるために使用できます。

    DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL],
    FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]
    

    浮動小数点型

    浮動小数点型は固定長であり、非厳密な数値型です。値の範囲と精度は、型の長さ、Precision、Scale、および符号が無いかどうかによって決まります。

    ​PrecisionとScaleはそれぞれ、小数点以下の有効桁数の合計、小数部の最大有効桁数を表します。整数部の最大有効桁数はPrecisionからScaleを引いた値に等しく、Precisionの最大値は53、Scaleの最大値は30です。

    注意

    浮動小数点型の精度はIEEE標準で規定されている理論値にすぎず、実際の状況ではハードウェアやOSの制限により若干異なる場合があります。

    以下の表は、PrecisionとScaleを指定しない場合の浮動小数点型に必要なストレージ長と値の範囲を示しています。

    タイプ 長さ(バイト) 値の範囲 精度
    FLOAT 4 [-3.402823466E+38, -1.175494351E-38]、0 および [1.175494351E-38,3.402823466E+38] 7 桁
    DOUBLE 8 [-1.7976931348623157E+308, -2.2250738585072014E-308]、0 および [2.2250738585072014E-308,1.7976931348623157E+308] 15 桁

    PrecisionとScaleを指定した場合、値の範囲の決定方法は固定小数点型と同じです。​

    FLOAT ​

    FLOATは小さい(単精度)浮動小数点数を表すために使用されます。構文は次のとおりです:

    FLOAT [UNSIGNED] [ZEROFILL]
    

    M は格納できる総ビット数、D は小数点以下の桁数です。M と D を省略した場合、値はハードウェアが許容する制限範囲内に格納されます。単精度浮動小数点数は約7桁まで正確です。

    数値列に ZEROFILL を指定すると、OceanBaseデータベースは自動的にその列に UNSIGNED プロパティを追加します。UNSIGNED を指定した場合、負の値を許可しません。

    説明

    • FLOAT(M,D) はMySQLの非推奨構文です。ユーザーによる使用は推奨されません。
    • FLOAT は単精度浮動小数点数であるため、最大有効精度は7桁を超えません。入力された有効精度が7を超える場合、最初の7桁の有効数字のみが保証され、それ以上の部分の値は保証されません。MySQLにもこの問題があります。正確な検索が必要な場合は、DECIMAL タイプを使用することを推奨します。

    FLOAT は以下の構文もサポートしています:

    FLOAT(p) [UNSIGNED] [ZEROFILL]
    

    ここで、p はビット単位の精度を表しますが、この値は結果データ型を FLOAT または DOUBLE とするためにのみ使用されます。p が0から24の場合、データ型は FLOAT になり、M または D の値はありません。p が25から53の場合、データ型は DOUBLE になり、M または D の値はありません。結果列の範囲は、このセクションの前半で説明した単精度 FLOAT または倍精度 DOUBLE データ型と同じです。​

    DOUBLE

    DOUBLE は通常サイズ(倍精度)の浮動小数点数を表すために使用されます。構文は次のとおりです:

    DOUBLE [UNSIGNED] [ZEROFILL]
    

    ここで、M は格納できる総ビット数、D は小数点以下の桁数です。M と D を省略した場合、値はハードウェアが許容する制限範囲内に格納されます。倍精度浮動小数点数は約15桁まで正確です。

    数値列に ZEROFILL を指定すると、OceanBaseデータベースは自動的にその列に UNSIGNED プロパティを追加します。UNSIGNED を指定した場合、負の値を許可しません。

    説明

    • DOUBLE[(M,D)] はMySQLの非推奨構文です。ユーザーによる使用は推奨されません。DOUBLE は倍精度浮動小数点数であるため、最大有効精度は15桁を超えません。入力された有効精度が15を超える場合、最初の15桁の有効数字のみが保証され、それ以上の部分の値は保証されません。MySQLにもこの問題があります。正確な検索が必要な場合は、DECIMAL タイプを使用することを推奨します。
    • OceanBaseデータベースでは、D の値は0のみをサポートしており、0以外に設定すると「Feature not supported」というエラーが報告されます。

    DOUBLE PRECISION

    DOUBLE PRECISION は DOUBLE のシノニムです。構文は次のとおりです:

    DOUBLE PRECISION [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]
    

    説明

    DOUBLE PRECISION [(M,D)] はMySQLの非推奨構文です。ユーザーによる使用は推奨されません。正確な検索が必要な場合は、DECIMAL タイプを使用することを推奨します。

    BIT値型

    BIT データ型は、ビット値を格納するために使用されます。

    ビット値は b'値' の形式で指定され、値 は0と1で指定されます。例えば、b'111' は7を表し、b'10000000' は128を表します。

    構文は以下のとおりです:

    BIT[(M)]
    

    M は各値のビット数を表し、範囲は [1、64] です。M を省略した場合、デフォルトは1です。

    BIT(M) 列に値を挿入する際、挿入する値の長さが M より短い場合、左側に0が補われます。例えば、b'101' を BIT(6) に挿入すると、b'000101' を挿入したことになります。

    前のトピック

    データ型の概要
    最後

    次のトピック

    日付時刻データ型
    次
    このページの内容
    数値型の概要
    整数型
    固定小数点型
    浮動小数点型
    BIT値型