MYSQL数据类型和属性定义

工作所需,需要深入了解下MySQL的数据类型。

 

MySQL的数据类型

MySQL的数据类型共有36种,主要包括以下五大类:

整数类型BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
浮点数类型FLOAT、DOUBLE、DECIMAL
字符串类型CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
日期类型DATE、DATE TIME、TIMESTAMP、TIME、YEAR
其他数据类型BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等

 

1、整型

MySQL数据类型含义(有符号)
tinyint(m)1个字节  范围(-128~127)
smallint(m)2个字节  范围(-32768~32767)
mediumint(m)3个字节  范围(-8388608~8388607)
int(m)4个字节  范围(-2147483648~2147483647)
bigint(m)8个字节  范围(+-9.22*10的18次方)

取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。

 

2、浮点型

MySQL数据类型含义
float(m,d)单精度浮点型    8位精度(4字节)     m总个数,d小数位
double(m,d)双精度浮点型    16位精度(8字节)    m总个数,d小数位

m代表整个数字位数为m,d代表小数点不超过d位。假设定义为float(5,2),则数据111.222,实际数据库里存的是111.45.

 

3、定点数

定点数decimal(m,d) ,参数m<65 是总个数,d<30 且 d<m 是小数位。

定点数和浮点数在数据库中存储的区别是,浮点型存的四舍五入近似值,定点类型存放的是精确值。 

  • 对货币等对精度敏感的数据,应该用定点数存储;
  • 编程中,如果用到浮点数,要特别注意误差问题,并尽量避免做浮点数比较;

 

4、字符串(char,varchar,_text)

MySQL数据类型含义
char(n)固定长度,最多255个字符
varchar(n)固定长度,最多65535个字符
tinytext可变长度,最多255个字符
text可变长度,最多65535个字符
mediumtext可变长度,最多2的24次方-1个字符
longtext可变长度,最多2的32次方-1个字符

char和varchar的区别:

char(n): 固定长度,若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。并且char(n),不管是实际存入几个字符,都将占用n个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),比如varchar(4),存入3个字符将占用4个字节。 

char类型的字符串检索速度要比varchar类型的快。
 

6.日期时间类型

MySQL数据类型含义
date日期 如 2019-10-2
time时间 如12:25:11
datetime日期时间 2019-10-2 12:25:11
timestamp自动存储记录修改时间
Year以YYYY的格式显示。比如:2009

timestamp 的时间会随其他字段修改的时候自动刷新,所以这一般用来存储最后被修改的时间。

 

数据类型的属性定义

MySQL关键字含义
NULL数据列可包含NULL值
NOT NULL数据列不允许包含NULL值
DEFAULT默认值
PRIMARY KEY主键
AUTO_INCREMENT自动递增,适用于整数类型
UNSIGNED无符号
CHARACTER SET name指定一个字符集

 

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页