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

标签 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 .

我只给出了一个关于数字数据类型的示例,但我也期待其他数据类型的可能性。

我确实知道我们只能选择 列和表达式,但我想了解 SQL 是否像 Java 和其他编程语言一样具有这种功能。

最佳答案

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

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

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

关于java - 使用任何 SQL 查询的数据类型范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345950/

相关文章:

java - 尝试将字符串转换为 MD5 时我做错了什么

java - 如何在 Java 中终止 Python 脚本?

java - 如何使类可用于包外的运行时 java 命令

mysql - SQL:多个左连接后的情况

mysql - 如何为子查询添加值?

java - 在加法之前将 double 转换为 BigDecimal 是否足以保留原始精度?

MySQL join child + parent 在同一个表中,然后将两者与另一个表连接

mysql - 这些表是第二范式吗?第三?

mysql - 通过存储过程分配行号

php - 为上传的图片添加随机数前缀