1

私はJava 定数フィールド値を参照していて、SQL クエリを使用してデータ型の境界値 (たとえばMIN_VALUEMAX_VALUE数値データ型の場合) を取得できるかどうかを考えました。

例えば

select  
    int.signed_min_value as int_sgnd_min,  
    int.unsigned_min_value as int_usgnd_min,  
    int.signed_max_value as int_sgnd_max,  
    int.unsigned_max_value as int_usgnd_max,  
    int.storage_bytes as int_bytes  
from dual;  

結果になるはずです

+--------------+---------------+--------------+---------------+-----------+
| int_sgnd_min | int_usgnd_min | int_sgnd_max | int_usgnd_max | int_bytes |
+--------------+---------------+--------------+---------------+-----------+
|  -2147483648 |             0 |   2147483647 |    4294967295 |       4   |
+--------------+---------------+--------------+---------------+-----------+

上記の結果は、MySQL 整数データ型に対して定義されたストレージと範囲の値ですMySQL でのその他のデータ型ストレージ要件は、ここで
定義されているとおりです。

数値データ型のみのサンプルを提供しましたが、他のデータ型の可能性も期待しています。

列と式しかできないことは承知していselectますが、Java や他のプログラミング言語のように SQL にそのような機能があるかどうかを理解しようとしています。

4

1 に答える 1

1

SQL Server を意味する場合は、sys.types テーブルからその情報を取得できます。もしあなたがそうするなら:

select * from sys.types
where name='int'

タイプの最大長 (バイト単位) を示す max_length を確認できます。したがって、int = 4 バイトで、-2^31 (-2,147,483,648) から 2^31-1 (2,147,483,647) が得られます。

于 2012-07-05T14:15:08.327 に答える