MySQL中常见数据类型内容梳理

目录

前言

常用类型分类

1.数值型

整型

浮点型

定点型

2.字符型

较短

较长

补充:

3.日期和时间类型

date

time

datetime

timestamp

datetimeVStimestamp


前言

MySQL与Java一样,也有数据类型。MySQL中数据类型主要应用在列上。

常用类型分类

1.数值型

整型

m代表限定的显示宽度 

tinyint(m)

1个字节 范围(-128~127) 无符号[0,255]

smallint(m)

2个字节 范围(-32768~32767) 无符号[0,65535]

mediumint(m)

3个字节 范围(-8388608~8388607) 无符号[0,2^24-1]

int(m)

4个字节 范围(-2147483648~2147483647) 无符号[0,2^32-1]

bigint(m)

8个字节 范围(+-9.22*10的18次方) 无符号[0,2^64-1]

浮点型

float(m,d)

单精度浮点型 8位精度(4字节) m总个数,d小数位必有位数

double(m,d)

双精度浮点型 16位精度(8字节) m总个数,d小数位必有位数

定点型

定义:

定点数(英语:fixed-point number)

是一种实数数据类型,要求小数点后位数固定,

有时也要求小数点前位数固定。定点数与更复杂的浮点数相对。

decimal(m,d) 

正常情况,与float、double 用法类似

特点:

1.默认限定为(10,0)

2.当DECIMAL(M,D)列存储的数值小于该列能表示的范围,则存储为DECIMAL(M,D)能表示的最小值。

3.当DECIMAL(M,D)列存储的数值大于该列能表示的范围,则存储为DECIMAL(M,D)能表示的最大值;

4.当DECIMAL(M,D)列存储的数值的小数位数超过D,则自动四舍五入到D位。但会报警提示warning

2.字符型

较短

char(n)

固定长度

n可省略,默认位1

char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。

所以char类型存储的字符串末尾不能有空格。

varchar(n)

可变类型

注意! : n 不可省略

varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),

所以varchar(4),存入3个字符将占用4个字节,char类型的字符串检索速度要比varchar类型的快。

较长

text

text是实际字符数+2个字节,text类型不能有默认值。

blob 

用于保存较长的二进制数据

char VS varchar

适合场景:

固定长度  char

可变长度  varchar

varchar VS text 

varchar可直接创建索引,text创建索引要指定前多少个字符。

varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。

补充:

binaryvarbinary 类似于二进制的 char和varchar 保存较短的二进制

Enum类型(枚举)

要求插入值必须输入给定列表中

如果成员位 1~255 则需1字节存储

如过列表成员为255~65535 则需2字节存储

注意:忽略大小写

Set类型

可保存0~64个成员

set类型一次可以取很多个成员,Enum只能选一个

成员个数不同,存储字节也不同

1~8  - - 1

9~16 - - 2

17~26 - - 3

25~32 - - 4

33~64 - - 8

注意:忽略大小写

3.日期和时间类型

date

Date格式:

以YYYY-MM-DD的格式显示,比如:2009-07-19

长度:4字节

time

Time格式:

以HH:MM:SS的格式显示。比如:11:22:30

长度:3字节

datetime

Date Time格式:

以YYYY-MM-DD HH:MM:SS的格式显示,比如:2009-07-19 11:22:30

长度:8字节

注意! : 只能反应插入时的当地时间

timestamp

TimeStamp格式:以YYYY-MM-DD的格式显示,比如:2009-07-19

长度:3字节

特点:

        1.和实际时区有关,更能反应实际的日期

        2.受MySQL版本和SQLMode影响很大

        3.若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

datetimeVStimestamp

字节长度:

datetime - - - 8字节

timestamp - - - 4字节

范围:

datetime - - - 1000-9999

timestamp - - - 1970-2038

时区等影响:

datetime - - - no

timestamp - - - yes

你可能感兴趣的:(MySQL数据库,mysql,数据库,database)