MySQL【数据类型】

MySQL 支持多种类型,大致可以分为三类:数值日期/时间字符串(字符)类型 。

1.数值

整型:

类型

大小

范围(有符号)

用途

tinyint

1 Bytes

(-128,127)

小整数值

smallint

2 Bytes

(-32 768,32 767)

大整数值

mediumint

3 Bytes

(-8 388 608,8 388 607)

大整数值

int

4 Bytes

(-2 147 483 648,2 147 483 647)

大整数值

bigint

8 Bytes

(-9,223,372,036,854,775,808,9223372036854775807)

极大整数值

int(n)里的n是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度

浮点类型:

类型

范围

用途

float(5,3)

最多6位数字,包括最多3位小数

存储用户的身高、体重、薪水等

double(10,2)

最多10位数字,包括最多2位小数

双精度浮点数值

decimal(M,D)

最多M位数字,包括最多D位小数

可以存储非常大的数值,具体范围取决于指定的精度和标度

非常精确的数值 : 货币金额

DECIMAL类型以字符串的形式存储,即使数值没有小数部分,也会按照指定的小数位数来存储。

2.日期/时间

表示时间值的日期和时间类型为datetime、date、timestamp、time和year。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

create table test_time(y year, d date,t time,dt datetime);
insert into test_time values(now(), now(), now(), now());
insert into test_time values(2024, "2024-01-01", "12:00:01", "2024-07-12 11:41:00");

3.字符串

字符串类型指char、varchar、binary、varbinary、blob、text、enum和set。

类型

大小

用途

char

0-255 bytes

定长字符串

varchar

0-65535 bytes

变长字符串

TINYBLOB

0-255 bytes

不超过 255 个字符的二进制字符串

TINYTEXT

0-255 bytes

短文本字符串

blob

0-65 535 bytes

二进制形式的长文本数据

text

0-65 535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

longtext

0-4 294 967 295 bytes

极大文本数据

  • char表示定长字符串,长度是固定的;如果插入数据的长度小于char的固定长度时,则用空格填充;因为长度固定,所以存取速度要比varchar快很多,甚至能快50%,但正因为其长度固定,所以会占据多余的空间。
  • varchar表示可变长字符串,长度是可变的;插入的数据是多长,就按照多长来存储;varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间。
#存储大小固定为10字节
char(10)      #列的长度固定为创建表时声明的长度: 0 ~ 255
#根据实际字符串长度占空间,最多10字节
varchar(10)   #列中的值为可变长字符串,长度: 0 ~ 65535

1.经常变化的字段用varchar

2.知道固定长度的用char

3.超过255字符的只能用varchar或者text

4.能用varchar的地方不用text

4.枚举类型

枚举值必须是带引号的字符串文字:相当于【单选】

create table shirts (
    name varchar(40),
    size enum('小', '中', '大', '特大')
);
insert into shirts (name, size) values 
('dress shirt','大'), 
('t-shirt','中'),
('polo shirt','小');

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值