MySQL数据类型的长度
MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、 SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、 FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,这些数据类型的长度,并不是都指数据的大小。具体说就是:
(1)CHAR、VARCAHR的长度是指字符的长度,例如CHAR[3]则只能放字符串"123",如果插入数据"1234",则从高位截取,变为"123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的长度,其实和数据的大小无关!Length指的是显示宽度,举个例子:
- mysql> create table test(id int(3) zerofill);
- Query OK, 0 rows affected (0.09 sec)
- mysql> insert into test(id) values(1),(1234);
- Query OK, 2 rows affected (0.06 sec)
- Records: 2 Duplicates: 0 Warnings: 0
- mysql> select * from test;
- +------+
- | id |
- +------+
- | 001 |
- | 1234 |
- +------+
- 2 rows in set (0.00 sec)
可以看出,id的显示宽度为3,不足的左边补0,数据长度超过的则原样输出。如果没有zerofill,则看不出显示宽度,没有前导零。
(3)FLOAT、DOUBLE和DECIMAL的长度指的是全部数位(包括小数点后面的),例如DECIMAL(4,1)指的是全部位数为4,小数点后1位,如果插入1234,则查询的数据是999.9。过程如下
- mysql> alter table test add realnum decimal(4,1);
- Query OK, 2 rows affected (0.03 sec)
- Records: 2 Duplicates: 0 Warnings: 0
- mysql> insert into test(id,realnum) values(2,1234);
- Query OK, 1 row affected, 1 warning (0.05 sec)
- mysql> select * from test;
- +------+---------+
- | id | realnum |
- +------+---------+
- | 001 | NULL |
- | 1234 | NULL |
- | 002 | 999.9 |
- +------+---------+
- 3 rows in set (0.02 sec)
附录 常见MySQL数据类型(留作备忘)
类 型
大 小
描 述
CAHR(Length)
Length字节
定长字段,长度为0~255个字符
VARCHAR(Length)
String长度+1字节或String长度+2字节
变长字段,长度为0~65 535个字符
TINYTEXT
String长度+1字节
字符串,最大长度为255个字符
TEXT
String长度+2字节
字符串,最大长度为65 535个字符
MEDIUMINT
String长度+3字节
字符串,最大长度为16 777 215个字符
LONGTEXT
String长度+4字节
字符串,最大长度为4 294 967 295个字符
TINYINT(Length)
1字节
范围:-128~127,或者0~255(无符号)
SMALLINT(Length)
2字节
范围:-32 768~32 767,或者0~65 535(无符号)
MEDIUMINT(Length)
3字节
范围:-8 388 608~8 388 607,或者0~16 777 215(无符号)
INT(Length)
4字节
范围:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(无符号)
BIGINT(Length)
8字节
范围:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(无符号)
FLOAT(Length, Decimals)
4字节
具有浮动小数点的较小的数
DOUBLE(Length, Decimals)
8字节
具有浮动小数点的较大的数
DECIMAL(Length, Decimals)
Length+1字节或Length+2字节
存储为字符串的DOUBLE,允许固定的小数点
DATE
3字节
采用YYYY-MM-DD格式
DATETIME
8字节
采用YYYY-MM-DD HH:MM:SS格式
TIMESTAMP
4字节
采用YYYYMMDDHHMMSS格式;可接受的范围终止于2037年
TIME
3字节
采用HH:MM:SS格式
ENUM
1或2字节
Enumeration(枚举)的简写,这意味着每一列都可以具有多个可能的值之一
SET
1、2、3、4或8字节
与ENUM一样,只不过每一列都可以具有多个可能的值
MySQL数据类型的长度的更多相关文章
- [转]分析MySQL数据类型的长度【mysql数据字段 中length和decimals的作用!熟悉mysql必看】
转载自:http://blog.csdn.net/daydreamingboy/article/details/6310907 分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的&q ...
- mysql数据类型最大长度记录
MySQL中各数据类型的取值范围 转在这里,慢慢记下来. TINYINT -128 - 127 TINYINT UNSIGNED 0 - 255 SMALLINT -32768 - 32767 SMA ...
- MySQL数据类型字节长度
1.字符串 char(n): n 字节长度 varchar(n): 如果是 utf8 编码, 则是 3 n + 2字节; 如果是 utf8mb4 编码, 则是 4 n + 2 字节. 2.数值类型: ...
- MySQL数据类型2
一.MySQL的数据类型 主要包括以下五大类: 整数类型:BIT.BOOL.TINY INT.SMALL INT.MEDIUM INT. INT. BIG INT 浮点数类型:FLOAT.DOUBLE ...
- MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题
MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...
- mysql数据类型长度
1个字节= 8位 tinyint 为一个字节 2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...
- mysql 数据类型
1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) ...
- MySQL 数据类型 详解
MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...
- MySQL数据类型的验证
CHAR char (M) M字符,长度是M*字符编码长度,M最大255. 验证如下: mysql)) default charset=utf8; ERROR (): ); use BLOB or T ...
随机推荐
- 剑指offer-特定二维数组中查找一个元素是否存在-二分搜索-二维数组
int [][] array ={ {1,2,8,9}, {2,4,9,12}, {4,7,10,13}, {6,8,11,19} }; 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都 ...
- sys目录下常用文件汇总
1. /sys/kernel/debug/gpio 可以实时反馈系统中感兴趣的gpio引脚的状态 root@g6s:/sys/kernel/debug# cat gpio gpiochip7: GPI ...
- 【转】每天一个linux命令(10):cat 命令
原文网址:http://www.cnblogs.com/peida/archive/2012/10/30/2746968.html cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内 ...
- Apache关闭VirtualHost的Log日志记录
有时我们的apache产生的日志是超大的并且 没什么用处,这时我们就可以关闭了,关闭apache日志很简单,直接ErrorLog off或 # CustomLog即可. Web server(ex: ...
- mysql 中find_in_set()和in()用法比较
mysql 中find_in_set()和in()用法比较 在mysql中in可以包括指定的数字,而find_in_set()用于特定的数据类型. find_in_set 函数使用方法 个例子来说:有 ...
- JZ2440 裸机驱动 第13章 LCD控制器(2)
13.2 TFT LCD显示实例 13.2.1 程序设计 本实例的目的是从串口输出一个菜单,从中选择各种方法进行测试,比如画线. 画圆.显示单色.使用调色板等. 13.2.2代码详解 ...
- 【python】实例-判断用户输入数字的类型
num=input("please input the num: ") print "the number your input is: "+str(num) ...
- js jquery 设置cookie
转自http://yaoqianglilan.blog.163.com/blog/static/70978316201091810435251/ 本人亲测setcookie() getcookie() ...
- windows下使用vscode编写运行以及调试Python
更新于2018年10月: 首先去python官网下载python3 地址:https://www.python.org/downloads/windows/ 下载好后直接安装 记得勾选添加环境变量 ...
- 智能跳转---TC资源管理器
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;作者:天甜:QQ: ;一花一世界,一叶一枯荣,心无挂碍,无挂碍故 ...