第26节--数据类型介绍

数据类型介绍

一、整型

数据类型 字节 存储范围
Tinyint 1

有符号值:-128~127()

无符号值:0~255

Smallint 2

有符号值:-32768~32767

无符号值:0~65535

Mediumint 3

有符号值:-8388608~8388607

无符号值:0~1677215

int,integer 4

有符号值:-2147483648~2147483647

无符号值:0~4294967295

Bigint 8

有符号值:-9223372036854775808~9223372036854775807

无符号值:0~9223372036854775807*2+1

例:int(7)中7表示显示结果的宽度,入不够该宽度,若搭配zerofill,左边将用0填充

二、小数

 

浮点型

类型 字节
float(M,D) 4
double(M,D) 8

 

定点数类型

DEC(M,D)   M+2字节,最大取值范围与double相同,给定的decimal的有效取值范围由M和D决定。

特点:①M和D;M 代表整数部位+小数部位的总长度,D代表小数部位的总长度,如果超过范围,则插入 临界值

           ②M和D都可以省略,如果demical,则默认为10,D默认为0;如果是float和double,则会根据插入的数值精度来决定精度

           ③定点型的精确度较高,如果要插入数值的精确度较高,如货币运算等,则考虑使用

#原则:所选的类型越简单越好,能保存数值的类型越小越好(节省空间)

三、字符型

1. 较短的文本:char,varchar

2. 较长的文本:text,blob(较大的二进制)

数据类型 最多字符数 描述及存储需求 代表长度 效率
char(M) M, 可以省略,默认为1 M为0~255之间的整数 char代表固定长度的字符 char比较耗费空间,效率比较高
varchar(M) M, 不可以省略 M为0~65535之间的整数 varchar代表可变长度的字符 varcahr比较节省,效率比较低

 

 

 

M代表字符数(一个字母是一个字符,一个汉字是一个字符)

3. binary和varbinary类型(了解)

用于保存较短的二进制

说明:类似于char和varchar,不同的是他们包含二进制字符串而不包含非二进制字符串。

4. Enum类型(了解)用于保存枚举

又称枚举类型,要求插入的值必须属于列表中指定的值之一

如果列表成员为1~255,则需要一个字节存储

如果列表成员为255~65535,则需要2个字节存储,最多需要65535个成员

例:create table tab_char(
                       C1   Enum('a','b','c')

);

插入表中的值,必须属于‘a’ ,b,c中任意一个才有效。

5.set类型(了解)用于保存集合

和Enum类似,里面可以保存0~64个成员;和Enum最大的区别是:set 类型一次可以选取多个成员,而Enum只能选一个,根据成员个数的不同,存储所占的字节也不同

成员数 字节数
1-8 1
9-16 2
17-24 3
25-32 4
33-64 8

例:create table tab_set(

S1 set('a','b','c','d')

);

insert into tab_set values('a');

insert into tab_set values('a, b');

insert into tab_set values('a,b,c');

显示结果

S1
a
a,b
a,b,c

 

 

 

 

 

 

四、日期型

日期和时间类型 字节 最小值 最大值
date 4 1000-01-01 9999-12-31
datetime 8 1000-01-01 00:00:00 9999-12-31 23:59:59
timestamp 4 19700101080001 2038年的某个时刻
time 3 -838::59:59 838::59:59
year 1 1901 2155

 

 

 

 

 

 

 

 

 

 

 

 

1. timestamp支持的时间范围较小,取值范围:19700101080001~2038年的某个时间

 datetime的取值范围:1000-1-1~9999-12-31

2. timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区

3. timestamp 的属性受mysql版本和sqlmode的影响很大

create table tab_time(

             t1 datetime,

             t2 timestamp

);

总结:

date 只保存日期

time 只保存时间

year 只保存年

datetime 保存日期+时间

timestamp 保存日期+时间

 

 

特点:

数据类型 字节 范围 时区等的影响
datetime 8 1000-9999 不受
timestamp 4 1970-2038

 

 

 

 

 

 

Jasminelee
原文地址:https://www.cnblogs.com/Jasmine6-Lee/p/12721294.html