mysql数据类型

文章详细介绍了MySQL中的各种数据类型,包括整型(tinyint,smallint,mediumint,int,bigint)、浮点数(float,double)、定点数(decimal)以及字符型(char,varchar,text)和日期时间型(datetime,timestamp,date,year,time)。讨论了它们的存储范围、显示宽度以及使用注意事项,例如浮点数的精度问题,以及char和varchar的长度差异等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1.1 整型

整型

占用字节

范围

范围

tinyint

1

-27~27-1

-128~127

smallint

2

-215~215-1

-32768~32767

mediumint

3

-223~223-1

-8388608~8388607

int

4

-231~231-1     

-2147483648~2147483647

bigint

8

-263~263-1

多学一招:一个字节=8位    

帮助的位置:列类型——数值类型

1.1.2 显示宽度

显示宽度:最小的显示位数,比如int(11),最少用11位数字显示值。

注意:显示宽度不决定显示范围,只是在数值不够指定位数的时候用0做前导。

1.1.4 浮点数

浮点数

占用字节

范围

float(单精度)

4

-3.4E+38~3.4E+38

double(双精度)

8

-1.8E+308~1.8E+308

浮点数的声明:float(M,D),double(M,D)

M:总位数 D:小数位数

 

插入测试数据

 

注意:没有指定小数位数,默认小数位数是0

1.1.1 定点数(小数)

语法:decimal(M,D)

M的最大值是65,D的最大值是30,默认是(10,0)

 

注意:decimal是变长的,大致每9个数字用4个字节存储,整数和小数分开存储。定点数占用的资源可能会比浮点数大很多。

1.1 MySQL数据类型——字符型

数据类型

描述

char(L)

定长字符

varchar(L)

可变长度字符

tinytext

大段文本(大块数据)   28-1=255个字符

text

大段文本(大块数据)   216-1=65535个字符

mediumtext

224-1

longtext

232-1

1.1.1 char

1、 char(L):MySQL不回收多余的空间

2、 L的最大长度是255

 

1.1.2 varchar

1、 varchar(L):MySQL回收多余的空间

2、 L的理论最大长度是65535,但事实上达不到,因为有的字符是多字节字符,比如一个utf8的字符占用3个字节,65535/3大约保存2万多字符;如果是gbk,一个字符占两个字节,65535/2大约保存3万多个字符。

 

注意:一个记录的所有字段(不包含大数据)的总长度不能超过65535个字节

 

1.4 MySQL数据类型——日期时间型

数据类型

描述

datetime

日期时间   占8个字节

date

日期        占四个字节

time

时间

year

年份,占用1个字节

timestamp

时间戳,占用4个字节

1.4.1 datetime  (日期时间)

格式:年-月-日  小时:分钟:秒

 

--插入数据

 

1.4.2 timestamp  (时间戳)

 

插入数据

 

脚下留心:datetime和timestamp在表现上是一样的,他们的区别在于:

Datetime从1到9999,而timestamp从1970年到2038年(原因是timestamp只占用了4个字节),2038年01月19日11:14:07秒后就超过了4个字节的长度。

1.4.3 date  只保存日期,不保存时间

 

1.4.4 year

因为year占用1个字节,所以只能保存255个年份,范围是1901~2155

 

1.4.5 time

可以表示时间,还可以表示时间间隔,范围是-838:59:59~838:59:59

 

插入数据

 

 

 

多学一招:time也支持以天的方式表示时间间隔

 

1.5 MySQL数据类型——boolean

MySQL不支持boolean型,true和false在数据库中对应的是1和0

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值