字段类型
整型
MySQL数据库中整型的字段类型有多个,但是我们只需要了解其中几个即可
tinyint 1bytes 正负号(占1bit)
smallint 2bytes 正负号(占1bit)
int 4bytes 正负号(占1bit)
bigint 8bytes 正负号(占1bit)
在MySQL数据库中整型数据的存储是默认自带正负号的
我们也可以取消正负号
create table t5(id tinyint unsigned); # unsigned 起到一个取消正负号的作用
浮点型
MySQL数据库中浮点型的字段类型有多个,但是我们只需要了解三中即可
float(40,20) 共存储40位数,小数点后面占20位
double(40,20) 共存储40位数,小数点后面占20位
decimal(40,20) 共存储40位数,小数点后面占20位
这三个浮点型的核心区别在于对数字的精确度不同
float的精确度大概只能到小数点后七八位
double的精确度大概能到小数点后十四位左右
decimal的精确度最高,几乎是给的什么数就存取什么数
字符类型
MySQL中字符类型有两个
char 定长 char(4)固定存储长度为4个字符,超出会报错,不足会以空格填充至四个
varchar 变长 varchar(4)最多存储四个字符,超出报错,不足则有多少存多少
create table t6(name char(4));
create table t7(name varchar(4));
insert into t6 values('j');
insert into t7 values('j');
直接查看表中存储的数据看不出来数据长短,需要查看字段存储的长度使用 char_length()
默认情况下MySQL针对char的存储会自动填充空格和删除空格,如果要取消空格自动删除使用下面语句
set global sql_mode='strict_trans_tables,pad_char_to_full_length';
二者对比
char 整存整取,速度快但是浪费存储空间
varchar 节省存储空间,但是存取数据的速度较char慢
具体的使用需要根据实际情况
数字的含义
字段类型括号中的数字在很多地方都是用来表示限制存储数据的长度
但是在整形中数据不是用来限制存储长度的,而是用来控制展示的长度
create table t8(id int(3)); # 直接写没啥用
insert into t8 values(12345),(1);
create table t9(id int(3) zerofill);
insert into t9 values(12345),(1);
select * from t9; # 12345,001
# 我们以后写整形无需添加数字除非有特殊需要
枚举与集合
枚举 (多选一)
create table t10(name enum('jason','kevin','jack'));
insert into t10 values('tony'); # 报错
insert into t10 values('jason');
insert into t10 values('kevin');
查询出来的结果为jason和kevin
集合(多选多,多选一)
create table t11(name set('jason','kevin','jack'));
insert into t11 values('tony'); # 报错
insert into t11 values('jack');
insert into tii values('jason','kevin')
select * from t11; # jack jason,kevin
日期类型
日期类型的数据一般都是系统自动操作
create table t12(
register_time datetime, # 年月日时分秒
birthday date, # 年月日
study_time time, # 时分秒
work_time year # 年
);
insert into t12 values('2022-11-23 17:17:33','2022-11-23','17:17:51','2022')
标签:insert,into,char,values,类型,table,create
From: https://www.cnblogs.com/zyg111/p/16919422.html