【MySQL】数据库中的常用数据类型

常用数据类型

整型

tinyint

**取值范围:**只允许 -128 ~127 (默认有正负数)

​ 使用tinyint unsigned 时取值范围是 0~255

根据实际需求使用,使用例子:

create table tabtest(
	id int primary key auto_increment-- auto_increment让该字段自增,无需传值,并设为主键。
  	name varchar(16),
  	age int tinyint unsigned		--不需要负数
)default charset=utf8;

int

取值范围:

int 取值范围 -2147483648 ~ 2147483647

int unsigne 取值范围 0 ~ 4294967295

bigint

bigint 取值范围 -922337203654775808 ~ 922337203654775807

bigint unsigne 取值范围 0 ~ 18446744073709551615

浮点型

decimal

decimal(m,d)
-- 准确的小数值,m为数字长度(最小值1 最大值65),d为小数点后几位(最小值0 最大值30) ,如果小数位超过限制,则四舍五入。

例如:
create table tabtest(
	id int primary key auto_increment-- auto_increment让该字段自增,无需传值,并设为主键。
  	name varchar(16),
  	age int,
    salary decimal(8,2)     -- 定义一个salary字段为浮点型总长度8,小数位2位小数。
)default charset=utf8;

实际使用中主要使用decimal较多

在存储同样范围的值时,通常比decimal使用更少的空间,float使用4个字节存储,double使用8个字节 ,

而 decimal依赖于M和D的值,所以decimal使用更少的空间

decimal类型的数据存储形式是,将每9位十进制数存储为4个字节,如果设置的位数不是9的倍数,则按一下表的对应关系计算。

位数字节占用
00
1-21
3-42
5-63
7-94

如:字段decimal(20,6),20-6=14,其中小数部分为6,就对应上表中的3个字节,而整数部分为14,14-9=5,就是占4个字节再加上表中的3个字节

float

float单精度小数部分只能精确到后面6位,加上小数点前的一位,即有效数字为7位

double

double双精度小数部分能精确到小数点后的15位,加上小数点前的一位 有效位数为16位

double 和float也可以像decimal一样限制长度:

  • float(M,D) unsigned 中的M代表可以使用的数字位数,D则代表小数点后的小数位数, unsigned 代表不允许使用负数

  • double(M,D) unsigned 中的M代表可以使用的数字位数,D则代表小数点后的小数位数

字符串

char

定长字符串

固定11个字符串存储,如果不够11位字符串则按11位,超过报错。由于是固定长度,所以比varchar查询速度快。

char(n)    -- n最大为255

create table tabtest(
	id int primary key auto_increment,
  	name varchar(16),
  	age int,
    salary decimal(8,2),
    mobile char(11)     -- 规定mobile字段最长为11位
)default charset=utf8;

varchar

边长字符串

限制字符串长度,按实际长度存储。相对char更节省空间。

varchar(n)  -- n最大占用65535字节,如一个中文占用3个字节,则n最大就是65535/3=n


create table tabtest(
	id int primary key auto_increment,
  	name varchar(16),
  	age int,
    salary decimal(8,2),
    mobile varchar(11)     -- 规定mobile字段最长为11位
)default charset=utf8;

text

text(n)  -- n最大占用65535  (字符)
-- 一般用于长文本,文章等


create table tabtest(
	id int primary key auto_increment,
  	name varchar(16),
  	age int,
    salary decimal(8,2),
    mobile varchar(11),     
    article text			-- 规定article字段为text类型
)default charset=utf8;

mediumtext

最大可以使用16777215个字符。不常用

langtext

最大可以使用4294967295个字符,或者4G的数据。不常用

datetime 时间字符串

格式:YYYY-MM-DD HH:MM:SS

如:2022-07-18 22:00:00

date 时间字符串

格式:YYYY-MM-DD

如:2022-07-18

其他更多数据类型可以参照官方文档。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值