MySQL-字符类型|时间类型|枚举与集合类型

字符类型

分类

  • char  定长   char(4)  不够则空格补全, 超过四个字符报错
  • varchar 变长 varchar(4) 不够有几个要几个, 超过报错

验证

create table t18(name char(4));
create table t19(name varchar(4));

insert into t18 values('a');
insert into t19 values('a');


select char_length(name) from t18;
select char_length(name) from t19;

验证失败解决方法

# 加上下边这句(取消底层优化)

set global sql_mode='strict_trans_tables,pad_char_to_full_length';

# 重启mysql, 重复上述验证操作即可验证成功

char与varchar对比

  • char  浪费空间, 存取简单
  • varchar 节省空间, 存取较为复杂(需要制作报头, 标识真正数据量大小)
  • 为防止大量的浪费, 现在用varchar的越来越多

时间类型

分类

  • date: 年月日 2022-4-9
  • time: 时分秒 11:11:11
  • datetime: 年月日时分秒 2022-4-9 11:11:11
  • Year: 2022

代码试验

create table student(
	id int,
    name varchar(16),
    born_year year,
    birth date,
    study_time time,
    reg_time datetime  # 这儿不能加逗号
);
									# 需要1970之后
insert into student values(1,'matrix','1970','1970-11-11','11:11:11','2022-11-11 11:11:11');

枚举与集合类型

分类

  • 枚举 enum  多选一                     [学个单词:  枚举 enumerate]
  • 集合 set      多选多

代码试验

create table user(
	id int,
    name char(16),
    gender enum('male','female','others')
);
insert into user values(1,'jason','male');  # 正常
insert into user values(2,'egon','xxoo');  # 报错
# 枚举字段 只能从整个枚举对象里面选择一个存储 

create table teacher(
	id int,
    name char(16),
    gender enum('male','female','others'),
    hobby set('read','DBJ','hecha')
);
insert into teacher values(1,'jason','male','read');  # 正常
insert into teacher values(2,'egon','female','DBJ,hecha');  # 正常
insert into teacher values(3,'tank','others','生蚝'); # 报错
# 集合可以选多个, 也可以只写一个, 但是不能写没有列举的

Over !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值