時間日期類型
Datetime:時間日期,格式是YYYY-mm-dd HH:ii:ss,表示的范圍是從1000到9999年,有0值:
0000-00-00 00:00:00
Date:日期,就是datatime中的date部分
Time:時間(段),指定的某個區間之間,負時間到正時間
Timestamp:時間戳,並不是時間戳,只是從1970年開始的YYYY-mm-dd HH:ii:ss 格式與datetime完全一致
Year:年份。兩種形式,year(2)和year(4):1901-2156

創建時間日期表

插入數據:時間可以是負數,而且可以使很大的負數,


Timestamp字段:只要當前所在的記錄被更新,該字段一定會自動更新成當前時間


網站是以PHP為實現的主要操作對象:PHP中有非常強大的時間日期處理函數:date,只需要一個時間戳就可以轉換成任意類型的時間:以PHP為主的時候,都是在數據庫使用時間戳(整型)來存儲時間
字符串類型
在SQL中,將字符串類型分成了6類:char,varchar,text,blob,enum和set
定長字符串
定長字符串:char ,磁盤(二維表)在定義結構的時候,就已經確定了最終數據的存儲長度
char(L):L代表length,可以存儲的長度,單位為字符,最大長度值可以為255
char(4):在UTF8環境下,需要4*3=12個字節
變長字符串
變長字符串:varchar,在分配空間的時候,按照最大的空間分配:但是實際上最終用了多少,是根據具體的數據來確定
varhcar(L):L表示字符長度 理論上長度是65536個字節,但是會多出一到兩個字節來確定存儲的實際長度:但是實際上如果長度超過了255,既不用定長也不用變長,使用文本字符串text
varchar(10) :的確存了10個漢字,utf8環境,10*3+1=31(bytes)
存儲了3個漢字:3*3+1=10(bytes)
定長與變長的存儲實際空間(UTF8)
實際存儲數據char(4)varchar(4)char占用字節varchar占用空間ABCDABCDABCD4*3=124*3+1=13AAA4*3=121*3+1=4ABCDE✘✘數據超過長度數據超過長度
如何選擇定長或者變長字符串呢?
定長的磁盤空間比較浪費,但是效率高:如果數據基本上確定長度都一樣,就使用定長,如身份證號,電話號碼等
變長的磁盤空間比較節省,但是效率低;如果數據不能確定長度(不同數據有變化),如姓名,地址等
