使用任何SQL查询的数据类型范围值

时间:2012-07-05 14:01:47

标签: java mysql sql oracle

我指的是Java Constant Field Values,并考虑是否可以使用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   |
+--------------+---------------+--------------+---------------+-----------+

以上结果为storage and range values defined for MySQL integer data type MySQL中的其他数据类型存储要求如定义here

我只提供了数值数据类型的示例,但我也期待其他数据类型的可能性。

我知道我们只能select列和表达式,但试图了解SQL中是否存在像Java和其他编程语言一样的工具。

1 个答案:

答案 0 :(得分:1)

如果您的意思是Sql Server,您可以从sys.types表中获取该信息。如果你这样做:

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

你可以检查max_length,它表示该类型的最大长度(以字节为单位)。所以int = 4 bites whihc给你-2 ^ 31(-2,147,483,648)到2 ^ 31-1(2,147,483,647)