你可以使用 MySQL 的系统帮助来查找 double 数据类型的信息。在 MySQL 中,可以使用 DESC 命令来查看表的结构信息,包括每个列的数据类型。
下面是查找 double 数据类型信息的步骤:
打开 MySQL 命令行或者其他 MySQL 客户端;
连接到你的 MySQL 数据库;
选择你要查找信息的数据库:USE database_name,其中 database_name 是你要查找信息的数据库名;
输入以下命令,查看表的结构信息:DESC table_name,其中 table_name 是你要查找信息的表名;
找到数据类型为 double 的列名,可以查看其是否为有符号数。
如果你想查找所有的 double 列并列出其有符号数的信息,可以使用以下命令:
SELECT COLUMN_NAME, COLUMN_TYPE, NUMERIC_SCALE, IS_NULLABLE, COLUMN_DEFAULT,
IF(COLUMN_TYPE LIKE '%unsigned%', 'unsigned', 'signed') AS 'sign'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name' AND DATA_TYPE = 'double'
在上面的命令中,将 database_name 替换成你要查找信息的数据库名。这个命令将返回所有数据类型为 double 的列的信息,包括列名、数据类型、小数点后的位数、是否可以为空、默认值以及是否为有符号数。其中,IF(COLUMN_TYPE LIKE '%unsigned%', 'unsigned', 'signed') 语句将判断该列是否为有符号数,如果该列类型中包含 unsigned,则返回 unsigned,否则返回 signed。
一、数据类型MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
MySQL支持的整数类型有TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。
对于小数的表示,MySQL分为两种方式:浮点数和定点数。浮点数包括float(单精度)和double(双精度),而定点数只有decimal一种,在MySQL中以字符串的形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
类型大小范围(有符号)范围(无符号)unsigned约束用途TINYINT1 字节(-128,127)(0,255)小整数值SMALLINT2 字节(-32 768,32 767)(0,65 535)大整数值MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)大整数值INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值BIGINT8 字节(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值FLOAT4 字节
float(255,30)(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度
浮点数值DOUBLE8 字节
double(255,30)(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度
浮点数值DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2
double(65,30)依赖于M和D的值依赖于M和D的值小数值1.1 int整数示例
# 创建表一个是默认宽度的int,一个是指定宽度的int(5)
mysql>create table t1 (id1 int,id2 int(5))
Query OK, 0 rows affected (0.02 sec)
# 像t1中插入数据1,1
mysql>insert into t1 values (1,1)
Query OK, 1 row affected (0.01 sec)
# 可以看出结果上并没有异常
mysql>select * from t1
+------+------+
| id1 | id2 |
+------+------+
| 1 | 1 |
+------+------+
row in set (0.00 sec)
# 那么当我们插入了比宽度更大的值,会不会发生报错呢?
mysql>insert into t1 values (111111,111111)
Query OK, 1 row affected (0.00 sec)
# 答案是否定的,id2仍然显示了正确的数值,没有受到宽度限制的影响
mysql>select * from t1
+------------+--------+
| id1 | id2 |
+------------+--------+
| 0000000001 | 00001 |
| 0000111111 | 111111 |
+------------+--------+
rows in set (0.00 sec)
mysql 数据库float,int,bigint,double区别单精度浮点数(float)的尾数是用24bit表示的,双精度(double)浮点数的尾数是用53bit表示的,转换成十进制: 2^24 - 1 = 16777215 2^53 - 1 = 9007199254740991 由上可见,IEEE754单精度浮点数的有效数字二进制是24位,按十进制来说
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)