標籤:
建表其實就是聲明列的過程,建表語句:create table 表名稱 (列名稱1 列類型 列屬性 預設值,列名稱2 列類型 列屬性 預設值,index xx (xx))engine=儲存引擎 charset=字元集;比如,create table stu (id int primary key auto_increment,name varchar(20) not null default ‘‘,age tinyint unsigned not null default 0,index id (id))engine=innodb charset=utf8;注意,primary key和auto_increment一張表只能有一列,且primary列的值不能重複,auto_increment此列必須加索引(index/key)。
資料類型
數值型 位元組 無符號範圍
tinyint 1Byte 0-255
smallint 2Byte 0-65535
mediumint 3Byte 0-16777215
int 4Byte 0-9223372036854775807
bigint 8Byte 0-18446744073709551615
整型列的選擇性參數,unsigned(無符號),zerofill(0填充,zerofill預設屬性決定列為unsigned),M(顯示寬度)。比如,create table t1 (id tinyint(5) zerofill);注意,M參數只有和zerofill一起使用才有意義。
浮點型
float (M,D) unsigned zerofill,float範圍是-3.402823466E+38到-1.175494351E-38,0,1.175494351E-38到3.402823466E+38,M是精度總位元,D是小數點後的位元,如果M,D都不寫,float(單精確度)精確到大約7位小數,double(雙精確度)精確到大約15為小數,float/double會有精度損失,decimal(定點型)會更精確。
字元型
char,定長,char(10)可存空間是10個字元,每一行的實際佔用空間都是10個字元的長度,不管寫入的是1個還是2個或者8個。
varchar,變長,varchar(10)可存空間是10個字元,每一行的實際佔用空間要看寫入的字元,另加1-2個位元組來儲存字元結束的標誌。
一般來說,20個字元以內的用char,20個字元以上的用varchar,速度上char快一點。
text最多能存65535個字元,用來儲存大段文本。
blod儲存2進位資訊,用來存圖片,音頻等2進位資訊,不會丟失資訊。
enum枚舉型,定義好,值就在某幾個枚舉範圍內,比如,create table t1 (gender enum(‘男‘,‘女‘));注意,這時就只能插入男或女這2個值。
set和enum區別在於,enum只能插入枚舉範圍的一個值,set可以插入幾個值。
日期時間型
year 年(1位元組),範圍1901-2155。
date 日期,範圍1000-01-01到9999-12-31,注意date必須是字元型。
time時間,範圍-838:59:59到838:59:59,注意time必須是字元型。
datetime日期時間,範圍1000-01-01 0:00:00到9999-12-31 23:59:59,注意datetime必須是字元型。
timestamp時間戳記,範圍1970-01-01 0:00:00到現在的秒數,預設自動更新。
mysql之建表