MySql数据库——基本数据类型

MySQL数据类型

大致可以分为数值型、浮点型、日期/时间、字符串(字符)类型、二进制类型

1、数值类型

数据类型占用字节说明
tinyint1很小的正数
smallint2小的整数
mediumint3中等大小的整数
int4普通大小的整数
bigint8大整数
# 创建一个t_time的数据表
create table t_time(
	a tinyint,
    b smallint,
    c mediumint,
    d int,
    f bigint
);

2、浮点型

数据类型占用字节说明
float(m,d)4单精度浮点数
double(m,d)8双精度浮点数
declmal(m,d)m定点数
create table t_time(
	a float(8.2),
    b double(8.2),
    c mediumint(8.2)
);

3、日期时间型

数据类型日期格式占用字节
yearyyyy(2020)1
timehh:mm:ss(08:08:08)3
dateyyyy-mm-dd3
datetimeyyyy-mm-dd hh:mm:ss8
timestampyyyy-mm-dd hh:mm:ss4

datetime 和timestamp 虽然显示的格式是一样的,但是它们有很大的区别

  • datetime 的系统默认值是 null, 而 timestamp 的系统默认值是当前时间 now();
  • datetime存储的时间与时区无关,而 timestamp与时区有关
create table t_time(
	a datetime,
    b timestamp
);

-- 给两个变量赋值
insert into t_time (a) values (now());
insert into t_time (b) values (now());

-- 改变其时区(datetime的值与时区无关, timestamp的值会随着时区的改变而改变。)
set time_zone = '+8:00';
select * from t_time;

4、字符串型

数据类型占用字节说明
char(m)1<=m<=255固定长度的字符串
varchar(m)l+1,1<=m<=255可变长的字符串,会动态调整大小长度
tinytextl+1, l<2^8非常小的文本字符串
textl+2,l<2^16小的文本字符串
mediumtextl+3, l<2^24中等大小的文本字符串
longtextl+4,l<2^32大的文本字符串
ennm1 或者 2个字节,取决于枚举的数目,最大 65535个枚举类型
set1,2,3,4或8个字节集合类型

enum类型总有一个默认值,当ENUM 列声明为NULL,则默认值为NULL。如果 ENUM 列被声明为 NOT NULL,则其默认值为列表的第一个元素。

-- 创建t_enum表
create table t_enum (
	gender enum('male', 'female') not null,
    hobby  enum('a', 'b', 'c', 'd') 
);

insert into t_enum (gender) values ('female');   # Y
insert into t_enum (hobby) values ('a');         # Y
insert into t_enum (hobby) values (null);        # Y
insert into t_enum (hobby) values ('x');         # 
insert into t_enum (hobby) values ('ab');        # N

-- 创建t_set表
create table t_set (
	hobby set('a', 'b', 'c', 'd')
);

insert into t_set values ('a');       # Y
insert into t_set values ('x');       # N
insert into t_set values ('a,b,d');   # Y
insert into t_set values ('a,,b,x');  # N
insert into t_set values ('c,a,d');   # Y
select * from t_set;

5、二进制型

数据类型占用字节说明
bit(m)(m+7)/8位字节类型
binary(m)m固定长度的二进制数据
varbinary(m)l+1可变长度的二进制数据
tinyblobl+1,l<2^8非常小的blob
blobl+2, l<2^16小的blob
mediumnblobl+3,l<2^24中等大小的blob
longblobl+3,l<2^3非常大的blob
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值