MySQL的基本数据类型
整型
1、整型有四种
tinyint smallint int bigint
2、区别
不同的int类型能够存储的数字范围是不一样的
要注意是否存负数(正负号需要占一个比特位)
针对手机号码只能用bigint
3、正负号
所有的int类型默认都需要正负号
create table t6(id tinyint unsigned); # 移除正负号
4、整型中括号内数字的作用
在整型中括号内的数字并不是用来限制存储的长度 而是用来控制展示的长度,在定义整型字段的时候 不需要自己添加数字 使用默认的就可以
整型比较的特殊 是唯一个不是用来限制存储长度的类型
浮点型
1、浮点型分类
float(255,30) # 总共255位 小数位占30位
double(255,30) # 总共255位 小数位占30位
decimal(65,30) # 总共65位 小数位占30位
2、区别
三者的精确度不一样
float < double < decimal
具体情况具体使用
字符类型
1、分类
char(4)
定长类型 最多只能存四个字符 多了报错少了自动空格填充至四个
varchar(4)
变长类型 最多只能存四个字符 多了报错少了有几个则存几个
2、报错修改
针对5.6版本超出范围不会报错 而是自动帮你截取并保存(此行为不合理)
方式1:
修改配置文件(永久)
方式2:
命令修改(暂时)
show variables like '%mode%' set session # 当前窗口有效 set global # 当前服务端有效 set gloabl sql_mode = 'strict_trans_tables'
修改完毕后退出客户端重新进入即可
3、char于varchar区别
char;
优势:整存整取 速度快
劣势:浪费存储空间
varchar;
优势:节省存储空间
劣势:存取数据的速度较char慢
4、注释(comment)
在创建字段的时候可以加上相应的注释
create table t12( id int comment '序号', name char(4) comment '姓名' );
枚举(enum)
多选一
enum() create table user( id int, name varchar(32), gender enum('male','female','others') ); insert into user values(1,'jason','男'); # 报错 insert into user values(1,'jason','male'); # 正常
集合(set)
多选多(包含了多选一)
set() create table userinfo( id int, name char(16), hobby set('basketball','football','doublecolorball') );
日期类型
date 年月日 datetime 年月日时分秒 time 时分秒 year 年份
例子
create table client( id int, name varchar(32), reg_time date, birth datetime, study_time time, join_time year ); insert into client values(1,'jason','2000-11-11','2000-1-21 11:11:11','11:11:11',1995);