mysql支持long类型_MySQL支持的数据类型

数值类型

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约束

用途

TINYINT

1 字节

(-128,127)

(0,255)

小整数值

SMALLINT

2 字节

(-32 768,32 767)

(0,65 535)

大整数值

MEDIUMINT

3 字节

(-8 388 608,8 388 607)

(0,16 777 215)

大整数值

INT或INTEGER

4 字节

(-2 147 483 648,2 147 483 647)

(0,4 294 967 295)

大整数值

BIGINT

8 字节

(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615)

极大整数值

FLOAT

4 字节 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)

单精度 浮点数值

DOUBLE

8 字节 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的值

小数值

961ddebeb323a10fe0623af514929fc1.png

[

48304ba5e6f9fe08f3fa1abda7d326ab.png](javascript:void(0)😉

# 创建表一个是默认宽度的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 |

+------+------+

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 |

+------------+--------+

2 rows in set (0.00 sec)

# 修改id1字段 给字段添加一个unsigned表示无符号

mysql> alter table t1 modify id1 int unsigned;

Query OK, 0 rows affected (0.01 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> desc t1;

+-------+------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+------------------+------+-----+---------+-------+

| id1 | int(10) unsigned | YES | | NULL | |

| id2 | int(5) | YES | | NULL | |

+-------+------------------+------+-----+---------+-------+

2 rows in set (0.01 sec)

# 当给id1添加的数据大于214748364时,可以顺利插入

mysql> insert into t1 values (2147483648,2147483647);

Query OK, 1 row affected (0.00 sec)

# 当给id2添加的数据大于214748364时,会报错

mysql> insert into t1 values (2147483647,2147483648);

ERROR 1264 (22003): Out of range value for column 'id2' at row 1

[

48304ba5e6f9fe08f3fa1abda7d326ab.png](javascript:void(0)😉

961ddebeb323a10fe0623af514929fc1.png

[

48304ba5e6f9fe08f3fa1abda7d326ab.png](javascript:void(0)😉

# 创建表的三个字段分别为float,double和decimal参数表示一共显示5位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值