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);